双状态脚本监视器在 SCOM 中无法自动解析

双状态脚本监视器在 SCOM 中无法自动解析

此脚本运行,如果返回“erro”,则会在 SCOM 中生成警报。警报设置为在监视器恢复正常状态时解决。我已经使用 cscript 测试了该脚本,它在每个状态下都返回正确的值。我很困惑为什么它会在“erro”上生成警报,但在“ok”上不会自动解决:

Option Explicit

On Error Resume Next

Dim objFSO
Dim TargetFile
Dim objFile
Dim oAPI, oBag
Dim StateDataType
Dim FileSize

Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()

TargetFile = "\\server\share\file.zip"

Set objFSO = CreateObject("scripting.filesystemobject")
Set objFile = objFSO.GetFile(TargetFile)

FileSize = objFile.Size / 1024

If FileSize < 140000 Then
    Call oBag.AddValue("State", "erro")
Else
    Call oBag.AddValue("State", "ok")
End If

Call oAPI.AddItem(oBag)
Call oAPI.Return(oBag)

不健康的表达: Property[@Name='State'] Equals erro

健康表达: Property[@Name='State'] 等于 ok

如果有人能阐明我可能遗漏的内容,那就太好了!

答案1

我们仍在努力理解 SCOM,并且我们也对此进行了一些努力。

触发“不健康”状态似乎发生得相当快,但触发恢复“健康”似乎发生在我们所说的 SCOM 时间。这种情况确实会发生,但肯定不会很快发生。我一直把这归咎于我们开发实验室的规模。

该脚本看起来没问题,但您也可以在操作管理器事件日志中验证脚本执行期间没有问题。例如,如果您正在访问文件共享,并且没有设置运行方式帐户,则如果该服务器计算机帐户没有文件共享的权限,则可能会失败。

这会导致脚本出错,但监视器将保持正常。

它可能会成功,因为当您运行它时,它会在您的用户帐户下执行,该帐户可能有权访问文件共享。

答案2

答案取决于监视器是否正常工作。监视器是否会根据需要更改状态,或者问题解决后监视器是否不会恢复到正常状态?

如果监视器正在工作但警报未解决:请检查单元监视器的 XML,并确保<AutoResolve>true</AutoResolve>在监视器定义中看到。在创作控制台中,您还可以设置此自动解决属性。

相关内容