Monitor de conexão de banco de dados do Service Provider Foundation

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

Monitora a conexão entre o ponto de extremidade da web SPF e o banco de dados SPF.

Knowledge Base article:

Resumo

Monitora a conectividade de banco de dados dos servidores web SPF. Isso é feito ao fazer um teste de conexão periodicamente no banco de dados Service Provider Foundation.

Configuração

Para que esse monitor funcione corretamente, ele deve ter permissão para ler o banco de dados da Service Management Automation. Crie uma conta Executar Como com permissões de leitura do banco de dados e adicione-a ao perfil Executar Como chamado Conta de Banco de Dados da Microsoft Service Provider Foundation.

É possível configurar as seguintes opções nesse monitor:

Opção

Definição

Padrão

Alertar no estado

Estado de integridade que fará com que o monitor gere um alerta.

O monitor está em um estado crítico de integridade

Prioridade do alerta

Prioridade do alerta gerado para este monitor.

Alto

Gravidade do Alerta

Prioridade do alerta gerado para este monitor.

Crítica

Resolver alerta automaticamente

Especifica se o alerta deve ser resolvido automaticamente quando o monitor retorna para um estado satisfatório de integridade.

Verdadeiro

Habilitado

Especifica se o monitor deve ser executado.

Verdadeiro

Gera um alerta

Especifica se o monitor deve gerar um alerta ao mudar para um estado crítico ou de advertência.

Verdadeiro

Intervalo

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

300

Causas

Se este monitor for um erro, então o banco de dados não está disponível no servidor ou a segurança para o monitor não está configurada corretamente. Consulte a seção Configuração para obter detalhes sobre a configuração do monitor.

Se o monitor estiver configurado corretamente e estiver em estado de erro, o banco de dados está offline ou o servidor de banco de dados está inacessível ao servidor Service Provider Foundation.

Resoluções

Verifique o status do banco de dados Service Provider Foundation e o servidor de banco de dados.

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 se conectar ao banco de dados SPF
A conexão com banco de dados SPF não foi bem-sucedida.
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>