Windows Azure Pack SQL Inaccessible Sql Server Error Monitor

WindowsAzurePack.Monitor.InaccessibleSqlServer.SqlServers (UnitMonitor)

Error, SQL cannot be accessed. This monitor is timed reset, you can overwrite the TimerWaitInSeconds parameter in the OM Console Override Properties dialog.

Knowledge Base article:

Summary

Monitors Database connectivity from the Windows Azure Pack Web servers to SQL Servers. This is done by periodically checking for the loss connection Event in the Event Log.

Causes

If this monitor is in error, then the SQL database is not available from the web server that registered the event in the event log.

Resolution

Check the status of SQL Server databases used by the Windows Azure Server Sites. Verify the Application Pool account for the Usage web endpoint on the Web server is provisioned with access to the databases server. Check the App Pool account password for expiration.

Configuration

For this monitor to work correctly, it must have permission to read the Event Log.

Option

Definition

Default

Alert On State

Health state for the monitor that generates an alert.

The monitor is in a critical health state

Alert Priority

Priority of the alert generated for this monitor.

High

Alert Severity

Priority of the alert generated for this monitor.

Critical

Auto-Resolve Alert

Specifies whether the alert should automatically be resolved when the monitor returns to a healthy state.

True

Enabled

Specifies whether the monitor should run.

True

Generates Alert

Specifies whether the monitor should generate an alert when changing to a warning or critical state.

True

Interval

Number of seconds between times that the monitor is run.

300

Element properties:

TargetWindowsAzurePack.ResourceProvider.SqlServers
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeWindowsAzurePack.MonitorType.CustomSingleEventLogTimer2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Error: Windows Azure Pack SQL Server Inaccessible Sql Server Error Alert
Error: SQL cannot be accessed. Event 214.
RunAsDefault
CommentWAP Monitor Event for SQL Resource Provider

Source Code:

<UnitMonitor ID="WindowsAzurePack.Monitor.InaccessibleSqlServer.SqlServers" Accessibility="Public" Enabled="true" Target="WindowsAzurePack.ResourceProvider.SqlServers" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="WindowsAzurePack.MonitorType.CustomSingleEventLogTimer2StateMonitorType" ConfirmDelivery="false" Comment="WAP Monitor Event for SQL Resource Provider">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="WindowsAzurePack.Monitor.InaccessibleSqlServer.AlertMessage.SqlServers">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ErrorEventRaised" MonitorTypeStateID="EventRaised" HealthState="Error"/>
<OperationalState ID="TimerEventRaised" MonitorTypeStateID="TimerEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<!-- Computer name for the first event. We will use a variable to get the target computer name. -->
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<!-- Name of the log containing the first event. -->
<LogName>Microsoft-WindowsAzurePack-MgmtSvc-SQLServer/Operational</LogName>
<!-- Expression for the first event -->
<Expression>
<And>
<!-- Expression for the first event number -->
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">214</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<!-- Expression for the first event source -->
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-WindowsAzurePack-MgmtSvc-SQLServer</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
<TimerWaitInSeconds>10800</TimerWaitInSeconds>
</Configuration>
</UnitMonitor>