发送通知失败警报规则

Microsoft.SystemCenter.Notification.FailedToSendThroughAllDevices.Alert (Rule)

每当通知子系统使用所有配置的设备/服务器发送通知失败时此规则就会创建警报

Knowledge Base article:

摘要

通知子系统无法通过所有设备为选中协议的订阅发送通知消息。

原因

通知子系统无法通过所有设备发送通知消息。 如果错误配置设备,或者设备无法工作时,就会发生这种情况。 如果通知操作帐户不具有对该协议通信服务器的正确权限,也可能会发生这种情况。

解决方法

通知子系统无法通过所有分配的设备在协议上发送通知消息。 尝试执行下列步骤以解决问题:

1. 使用 ruleID 来确定使用 Power Shell commandlet Get-Notification 的订阅。 验证是否根据收件人为该订阅使用的设备正确配置了订阅。

2. 找出通知子系统中是否存在针对特定设备失败的其他警报。

3. 确保管理服务器可以联系设备/服务器,并且不存在通信问题。

4. 验证通知操作帐户是否具有连接到设备/服务器的相应权限。

5. 检查设备/服务器并确保其根据需要独立于通知子系统工作。

Element properties:

TargetMicrosoft.SystemCenter.AlertNotificationSubscriptionServer
CategoryAlert
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
发送通知失败
通知子系统通过“{0}”协议将通知发送到“{1}”失败。 规则 ID: {2}
Event LogOperations Manager

Member Modules:

ID Module Type TypeId RunAs 
EventDS DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SystemCenter.Notification.FailedToSendThroughAllDevices.Alert" Enabled="true" Target="Microsoft.SystemCenter.AlertNotificationSubscriptionServer" ConfirmDelivery="false">
<Category>Alert</Category>
<DataSources>
<DataSource ID="EventDS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>.</ComputerName>
<LogName>Operations Manager</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>Health Service Modules</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<Value Type="String">$Target/ManagementGroup/Name$</Value>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>31505</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SystemCenter.Notification.FailedToSendThroughAllDevices.Alert.Message"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/Params/Param[5]$</AlertParameter1>
<AlertParameter2>$Data/Params/Param[6]$</AlertParameter2>
<AlertParameter3>$Data/Params/Param[2]$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/Params/Param[5]$</SuppressionValue>
<SuppressionValue>$Data/Params/Param[6]$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>