Monitoraggio della connessione database di Service Provider Foundation

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

Esegue il monitoraggio della connessione tra endpoint Web SPF e database SPF.

Knowledge Base article:

Riepilogo

Esegue il monitoraggio della connettività dai server Web SPF. A tale scopo, viene effettuata periodicamente una connessione di test al database Service Provider Foundation.

Configurazione

Per funzionare correttamente, il monitoraggio deve disporre dell'autorizzazione per leggere il database di Service Management Automation. Creare un account RunAs che dispone delle autorizzazioni di lettura per il database e aggiungerlo al profilo RunAs denominato Account di database di Microsoft Service Provider Foundation.

Per questo monitoraggio è possibile configurare le opzioni seguenti:

Opzione

Definizione

Impostazione predefinita

Avviso di stato

Stato di integrità per il monitoraggio che genera un avviso.

Il monitoraggio è in uno stato di integrità critico.

Priorità avviso

Priorità dell'avviso generato per questo monitoraggio.

Alta

Gravità avviso

Priorità dell'avviso generato per questo monitoraggio.

Critico

Risoluzione automatica avviso

Specifica se l'avviso deve essere risolto automaticamente quando il monitoraggio torna a uno stato integro.

Vero

Abilitata

Specifica se il monitoraggio deve essere eseguito.

Vero

Genera avviso

Specifica se il monitoraggio deve generare un avviso quando passa a uno stato di avviso o critico.

Vero

Intervallo

Numero di secondi tra due esecuzioni del monitoraggio.

300

Cause

Se lo stato di questo monitoraggio è Errore, il database non è disponibile dal server oppure la sicurezza per il monitoraggio non è configurata correttamente. Per informazioni dettagliate sulla configurazione del monitoraggio, vedere la sezione Configurazione.

Se il monitoraggio è configurato correttamente e lo stato è Errore, il database è offline oppure il server di Service Reporting non riesce ad accedere al server di Service Provider Foundation.

Soluzioni

Verificare lo stato del database di Service Provider Foundation e del server di database.

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
Non è possibile connettersi al database SPF
La connessione al database SPF non è riuscita.
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>