Service Provider Foundation 데이터베이스 연결 모니터

Microsoft.SystemCenter.SPF.Monitor.SpfDatabaseScriptMonitor (UnitMonitor)

SPF 웹 끝점과 SPF 데이터베이스 간의 연결을 모니터링합니다.

Knowledge Base article:

요약

SPF 웹 서버에서 데이터베이스 연결을 모니터링합니다. 이 작업은 Service Provider Foundation 데이터베이스에 대한 테스트 연결을 주기적으로 만들어 수행됩니다.

구성

이 모니터가 올바르게 작동하려면 Service Management Automation 데이터베이스를 읽을 수 있는 권한이 있어야 합니다. 데이터베이스에 대한 읽기 권한을 보유한 실행 계정을 만들어 Microsoft Service Provider Foundation 데이터베이스 계정이라는 실행 계정에 추가합니다.

이 모니터에 구성할 수 있는 옵션은 다음과 같습니다.

옵션

정의

기본값

경고 상태

경고를 생성하는 모니터의 성능 상태입니다.

모니터가 위험 성능 상태입니다.

경고 우선 순위

이 모니터에 대해 생성된 경고의 우선 순위입니다.

높음

경고 심각도

이 모니터에 대해 생성된 경고의 우선 순위입니다.

위험

경고 자동 해결

모니터가 정상 상태로 돌아갈 때 경고를 자동으로 해결할지 여부를 지정합니다.

True

사용

모니터를 실행할지 여부를 지정합니다.

True

경고 생성

모니터가 경고 또는 위험 상태로 바뀔 때 경고를 생성할지 여부를 지정합니다.

True

간격

모니터가 실행되는 시간 사이의 간격(초)입니다.

300

원인

이 모니터가 오류 상태이면 서버에서 데이터베이스를 사용할 수 없거나, 모니터 보안이 올바르게 구성되지 않은 것입니다. 모니터 구성에 대한 자세한 내용은 구성 섹션을 참조하세요.

모니터가 올바르게 구성되었는데 오류 상태이면 데이터베이스가 오프라인 상태이거나, 데이터베이스 서버에서 Service Provider Foundation 서버에 액세스할 수 없는 것입니다.

해결 방법

Service Provider Foundation 데이터베이스와 데이터베이스 서버의 상태를 확인하세요.

Element properties:

TargetMicrosoft.SystemCenter.SPF.SpfServer
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.ServiceProviderFoundation.PowerShellModule.TwoStateMonitorType.PropertyBag
RemotableTrue
AccessibilityPublic
Alert Message
SPF 데이터베이스에 연결할 수 없음
SPF 데이터베이스에 연결하지 못했습니다.
RunAsMicrosoft.SystemCenter.SPF.DatabaseAccount

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.SPF.Monitor.SpfDatabaseScriptMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.SystemCenter.SPF.SpfServer" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.ServiceProviderFoundation.PowerShellModule.TwoStateMonitorType.PropertyBag" ConfirmDelivery="false" RunAs="Microsoft.SystemCenter.SPF.DatabaseAccount">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.SPF.Monitor.SpfDatabaseScriptMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<ScriptName>HealthOfSqlServer.ps1</ScriptName>
<ScriptBody><Script>$oAPI = new-object -comObject "MOM.ScriptAPI"
$propertyBag = $oAPI.CreatePropertyBag()

$errorActionSetting = $ErrorActionPreference
try
{
$ErrorActionPreference = "Stop"
Import-Module "$env:COMMONPROGRAMFILES\Microsoft System Center 2012 R2\Service Provider Foundation\Microsoft.SystemCenter.Foundation.Cmdlet.dll"
$stamps = Get-SCSPFStamp
$propertyBag.AddValue("Result", "Success")
}
catch
{
$propertyBag.AddValue("Result", "Error")
}
finally
{
$ErrorActionPreference = $errorActionSetting
$propertyBag
}
</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
<ErrorExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Result']</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</ErrorExpression>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Result']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
</Configuration>
</UnitMonitor>