我正在尝试优化我的监控系统——我们正在使用 Geneos ITRS。
我有一个带有两个端点的示例(我们称它们为 port100 和 port101),并尝试创建一个规则,如果这些端口中的任何一个出现故障,它将发送一个警报。
如果状态更改为成功或失败消息,则配置为发送电子邮件的规则。
示例配置为每 60 秒运行一次。
有一段时间它是有效的——如果我停止任何服务——就会生成一封电子邮件。如果我停止两项服务 - 会生成两封电子邮件。如果我手动运行示例 - 会生成一封电子邮件。
但在某些时候,我做错了事,每分钟收到几千封电子邮件,直到我重新启动 ITRS 网关并禁用此规则。
任何人都可以解释为什么会这样吗?我相信规则块应该只在样本执行时触发,并且在 ITRS 块语法中没有创建循环的命令,所以我不确定我是否理解“规则块”是如何与采样器连接的。
代码示例(!!!请不要在生产中运行它,它可能会损害您的网关!!!):
set $(myStatus) "OK"
if path "port100" value <> "OK" then
set $(myStatus) value
endif
if path "port101" value <> "OK" then
set $(myStatus) value
endif
if $(myStatus) <> "OK" and severity = ok then
severity warning
userdata "Subject" "something is wrong"
run "SendEmail"
elseif previous severity <> ok then
severity ok
userdata "Subject" "Everything is ok"
run "SendEmail"
endif
我在脚本中看到一些可以修复的非关键内容(例如 set $(myStatus) "NotOk" 并且无需与以前的严重性状态进行比较),但我更喜欢显示原始的“坏脚本”只是为了提供所有证据。
请帮我解决以下问题:
为什么我有一个带有电子邮件警报的循环?
为什么它是每分钟一千封电子邮件而不是每分钟一两封(具有两个端点且间隔为 60 秒的示例每分钟仅产生两个示例执行)
(小问题)如何监控多个端点并在其中一个或多个不可用时生成一个警报
谢谢转发。
PS如果我理解正确,该规则块应该仅通过示例执行触发,它可能是 ITRS 中的错误?