Apache HTTP 서버 구성 확인

Microsoft.ApacheHTTPServer.ManagedServer.Unix.ConfigurationCheck.Monitor (UnitMonitor)

이 모니터는 Apache 구성을 확인하기 위해 스크립트를 실행하고, 구성에서 경고나 오류를 발견한 경우 경고를 보냅니다.

Knowledge Base article:

요약

Apache HTTP 서버 구성 파일에 구성 문제가 있습니다. 다시 시작하면 서버가 올바르게 시작하지 않을 수 있습니다. 이 모니터는 구성의 유효성을 검사하기 위해 -t 옵션으로 httpd 또는 apache2ctl 프로그램을 실행합니다. 프로그램이 구성에서 문제를 발견하면 오류 또는 경고 상태가 설정됩니다.

원인

httpd.conf 또는 include 파일의 구성이 잘못되었습니다. 구성 문제에 대한 자세한 내용은 경고 메시지와 컨텍스트를 검토합니다.

해결 방법

보고된 구성 문제를 해결합니다.

Element properties:

TargetMicrosoft.ApacheHTTPServer.ManagedServer.Unix
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.ShellScript.Status.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Apache HTTP 서버 구성
Apache HTTP 서버 구성에 문제가 있습니다. 경고 또는 오류를 검토하려면 경고 컨텍스트를 참고하세요. 결과: {0} {1}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.ApacheHTTPServer.ManagedServer.Unix.ConfigurationCheck.Monitor" Accessibility="Public" Target="Microsoft.ApacheHTTPServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.ShellScript.Status.ThreeState.MonitorType" ParentMonitorID="Health!System.Health.ConfigurationState" Enabled="onStandardMonitoring">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.ApacheHTTPServer.ManagedServer.Unix.ConfigurationCheck.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context///*[local-name()="StdOut"]$</AlertParameter1>
<AlertParameter2>$Data/Context///*[local-name()="StdErr"]$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState HealthState="Success" MonitorTypeStateID="StatusOK" ID="StatusOK"/>
<OperationalState HealthState="Warning" MonitorTypeStateID="StatusWarning" ID="StatusWarning"/>
<OperationalState HealthState="Error" MonitorTypeStateID="StatusError" ID="StatusError"/>
</OperationalStates>
<Configuration>
<Interval>14400</Interval>
<TargetSystem>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/NetworkName$</TargetSystem>
<Script>
#!/bin/bash

if [ -x "/usr/sbin/apache2ctl" ]
then
result=`/usr/sbin/apache2ctl -t `
fi

if [ -x "/usr/sbin/httpd" ]
then
result=`/usr/sbin/httpd -t `
fi

if [ -x "/usr/local/apache2/bin/apachectl" ]
then
result=`/usr/local/apache2/bin/apachectl -t `
fi

printf "$result"
exit 0</Script>
<ScriptArgs/>
<Timeout>120</Timeout>
<UserName>$RunAs[Name="Unix!Microsoft.Unix.ActionAccount"]/UserName$</UserName>
<Password>$RunAs[Name="Unix!Microsoft.Unix.ActionAccount"]/Password$</Password>
<WarningStatus>[w|W]arn</WarningStatus>
<ErrorStatus>Syntax [E|e]rr</ErrorStatus>
</Configuration>
</UnitMonitor>