查询有时会为 运行 的服务发送警报
Query sometimes delivers alerts for services that are running
我正在为 windows 服务设置 som 警报。使用下面的代码。但有时我会收到状态为 "Running" 的服务的警报。我们无法确定服务在此期间停止或重新启动。有谁知道可能出什么问题了吗?或者我应该将查询更改为其他内容?
每次服务停止时我都想要一个警报,以便支持团队可以采取行动。
ConfigurationData
| project Computer, SvcName, SvcDisplayName, SvcState, TimeGenerated
| where (SvcName =~ "W3SVC")
| project Computer, SvcName, SvcDisplayName, SvcState, TimeGenerated
| where SvcState != "Running"
更新:
您的查询中可能存在问题,如下所示:
如果 SvcState 状态在 2019/09/06 1:00 PM
处停止,则您可以通过重新启动它来解决问题。假设在 2019/09/06 2:00 PM
中又是 运行。但是在你的查询中,例如,查询从 2019/09/06 1:00 PM
开始运行,它总是 return 一个结果表明服务已停止(这实际上是 1:00 下午的旧状态,但是最新状态是 运行 在 2:00 下午)
所以你应该使用top 1 by TimeGenerated
获取最新的SvcState,默认是按TimeGenerated中的desc排序
请尝试以下代码:
ConfigurationData
| top 1 by TimeGenerated
| project Computer, SvcName, SvcDisplayName, SvcState, TimeGenerated
| where (SvcName =~ "W3SVC") and SvcState != "Running"
我正在为 windows 服务设置 som 警报。使用下面的代码。但有时我会收到状态为 "Running" 的服务的警报。我们无法确定服务在此期间停止或重新启动。有谁知道可能出什么问题了吗?或者我应该将查询更改为其他内容?
每次服务停止时我都想要一个警报,以便支持团队可以采取行动。
ConfigurationData
| project Computer, SvcName, SvcDisplayName, SvcState, TimeGenerated
| where (SvcName =~ "W3SVC")
| project Computer, SvcName, SvcDisplayName, SvcState, TimeGenerated
| where SvcState != "Running"
更新:
您的查询中可能存在问题,如下所示:
如果 SvcState 状态在 2019/09/06 1:00 PM
处停止,则您可以通过重新启动它来解决问题。假设在 2019/09/06 2:00 PM
中又是 运行。但是在你的查询中,例如,查询从 2019/09/06 1:00 PM
开始运行,它总是 return 一个结果表明服务已停止(这实际上是 1:00 下午的旧状态,但是最新状态是 运行 在 2:00 下午)
所以你应该使用top 1 by TimeGenerated
获取最新的SvcState,默认是按TimeGenerated中的desc排序
请尝试以下代码:
ConfigurationData
| top 1 by TimeGenerated
| project Computer, SvcName, SvcDisplayName, SvcState, TimeGenerated
| where (SvcName =~ "W3SVC") and SvcState != "Running"