Monitor da ligação à base de dados do Service Provider Foundation

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

Monitoriza a ligação entre o ponto final Web do SPF e a base de dados do SPF.

Knowledge Base article:

Resumo

Monitoriza a conectividade das bases de dados dos servidores Web do SPF. Isto é efetuado periodicamente através de uma ligação de teste à base de dados do Service Provider Foundation.

Configuração

Para que este monitor funcione corretamente, tem de ter permissão para ler a base de dados do Service Management Automation. Crie uma Conta Run As que tenha permissões de leitura para a base de dados e adicione-a ao Perfil Run As denominado Conta de Base de Dados do Microsoft Service Provider Foundation.

As seguintes opções podem ser configuradas neste monitor:

Opção

Definição

Predefinição

Alerta do Estado

Estado de funcionamento do monitor que gera um alerta.

O estado de funcionamento do monitor encontra-se numa condição crítica

Prioridade dos Alertas

Prioridade do alerta gerado por este monitor.

Alta

Gravidade do Alerta

Prioridade do alerta gerado por este monitor.

Crítico

Alerta de Resolução Automática

Especifica se o alerta deve ser resolvido automaticamente quando o monitor volta a um bom estado de funcionamento.

Verdadeiro

Ativado

Especifica se o monitor deve ser executado.

Verdadeiro

Gera Alerta

Especifica se o monitor deve gerar um alerta quando mudar para um estado de aviso ou crítico.

Verdadeiro

Intervalo

Número de segundos entre as vezes que o monitor é executado.

300

Causas

Se ocorrer um erro neste monitor, significa que a base de dados não está disponível no servidor ou que a segurança do monitor não está configurada corretamente. Para obter informações sobre a configuração do monitor, consulte a secção de Configuração.

Se o monitor estiver configurado corretamente e ocorrer um erro, isso significa que a base de dados está offline ou que o servidor de bases de dados está inacessível ao servidor do Service Provider Foundation.

Resoluções

Verifique o estado do servidor de bases de dados e da base de dados do 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
Não é Possível Ligar à Base de Dados do SPF
A ligação à base de dados do SPF não teve êxito.
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>