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

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

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

Knowledge Base article:

Resumo

Monitora a conectividade do banco de dados a partir de servidores Web da SPF. Isso é realizado através de um teste periódico de conexão ao banco de dados da Service Provider Foundation.

Causas

Caso este monitor apresente um erro, isso significa que o banco de dados não está disponível a partir do servidor, ou que a segurança do monitor não está configurada corretamente. Consulte detalhes da configuração do monitor na seção Configuração.

Se o monitor estiver configurado corretamente e o monitor apresentar um erro, isso significa que o banco de dados está offline, ou que o servidor do banco de dados está inacessível para o servidor da Service Provider Foundation.

Solução

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

Configuração

Para que esse monitor funcione corretamente, é necessário que ele tenha permissão para ler o banco de dados de Automação de Gerenciamento de Serviços. Crie uma Conta Run As com permissões do banco de dados e adicione ela ao Perfil Run As chamado Conta de Banco de Dados da Microsoft Service Provider Foundation.

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

Opção

Definição

Padrão

Estado de Alerta Ativo

Estado de integridade para o monitor que gera um alerta.

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

Prioridade do Alerta

Prioridade do alerta gerado para esse monitor.

Alto

Severidade do Alerta

Prioridade do alerta gerado para esse monitor.

Crítica

Alerta de Resolução Automática

Especifica se o alerta deve ser solucionado automaticamente quando o monitor retorna a um estado íntegro.

Verdadeiro

Habilitado

Especifica se o monitor deve ser executado.

Verdadeiro

Gera Alerta

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

Verdadeiro

Intervalo

Número de segundos entre os momentos em que o monitor é executado.

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
A conexão com o banco de dados SPF não teve êxito.
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>