Монитор подключений к базе данных Service Provider Foundation

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

Отслеживание подключений между конечной веб-точкой SPF и базой данных SPF.

Knowledge Base article:

Сводка

Отслеживает подключения к базе данных с веб-серверов SPF. Выполняется путем периодической проверки подключения к базе данных Service Provider Foundation.

Причины

Если монитор переходит в состояние ошибки, значит база данных недоступна с сервера или неправильно настроены параметры безопасности монитора. Дополнительные сведения о настройке монитора см. в разделе "Конфигурация".

Если монитор настроен правильно, но возникает его ошибка, значит база данных отключена от сети или сервер базы данных недоступен для сервера Service Provider Foundation.

Разрешение

Проверьте состояние базы данных Service Provider Foundation и сервера базы данных.

Конфигурация

Для правильной работы этого монитора необходимы разрешения на чтение базы данных автоматизации управления службами. Создайте учетную запись запуска от имени с разрешением на чтение базы данных и добавьте ее в профиль запуска от имени с именем "Учетная запись базы данных Microsoft Service Provider Foundation".

Для этого монитора можно настроить следующие параметры:

Параметр

Определение

По умолчанию

Оповещение о состоянии

Состояние работоспособности для монитора, создавшего оповещение.

Монитор в критическом состоянии работоспособности

Приоритет оповещения

Приоритет оповещений, созданных для этого монитора.

Высокая

Серьезность оповещений

Приоритет оповещений, созданных для этого монитора.

Критическое

Автоматическое разрешение оповещения

Указывает, должно ли оповещение разрешаться автоматически, когда монитор возвращается в работоспособное состояние.

True

Включено

Указывает на необходимость запуска монитора.

True

Создает оповещение

Указывает, должен ли монитор создавать оповещение при переходе в критическое состояние или состояние предупреждения.

True

Интервал

Интервал в секундах между запусками монитора.

300

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
AccessibilityInternal
Alert Message
AlertIfCantConnectToSpfDatabase
Не удалось подключиться к базе данных SPF.
RunAsMicrosoft.SystemCenter.SPF.DatabaseAccount

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.SPF.Monitor.SpfDatabaseScriptMonitor" Accessibility="Internal" 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>