首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geneos ITRS规则-脚本在执行过程中挂起无穷大循环,我不明白为什么。

Geneos ITRS规则-脚本在执行过程中挂起无穷大循环,我不明白为什么。
EN

Stack Overflow用户
提问于 2021-09-03 16:09:27
回答 1查看 238关注 0票数 0

我正在努力优化我的监控系统--我们正在使用Geneos ITRS。

我有一个带有两个端点的示例(让我们称它们为port100和port101),并尝试创建一个规则,如果这些端口中的任何一个失败,该规则将发送单个警报。

规则配置为在状态随成功或失败消息更改时发送电子邮件。

示例配置为每60秒运行一次。

一段时间以来,如果我停止任何一项服务,就会产生一封电子邮件。如果我停止两项服务-产生两封电子邮件。如果我手动运行示例,就会生成一封电子邮件。

但在某种程度上,我做错了一些事情,得到了一个无限循环,每分钟接收几封数千封邮件,直到我重新启动ITRS网关并禁用这个规则。

有人能解释一下为什么会发生这种事吗?我认为只有在样例执行时才应该触发规则块,而且在ITRS块语法中没有创建循环的命令,所以我不确定我是否理解“规则块”是如何与采样器连接的。

代码示例(!请不要在生产中运行IT,它可能会伤害您的网关!):

代码语言:javascript
复制
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“,没有必要与以前的严重性状态进行比较),但是我更喜欢显示原始的”坏脚本“,只是为了提供所有的证据。

请在以下方面帮助我:

  1. 为什么我有一个有电子邮件提醒的循环?

  1. 为什么是每分钟一千封电子邮件,而不是每分钟一到两封(间隔60秒的两个端点的示例只产生每分钟两个示例执行)

  1. (次要问题)如何监视多个端点,并在其中一个或多个端点不可用时生成单个警告

前面谢谢你。

如果我理解正确的话,规则块应该只在示例执行时触发,它可能是ITRS中的一个错误吗?

EN

回答 1

Stack Overflow用户

发布于 2021-09-04 20:29:52

看来,我在正式文件(https://docs.itrsgroup.com/docs/geneos/5.9.0/Gateway_Reference_Guide/geneos_rulesactionsalerts_tr.html)中找到了问题1和问题2的答案:

注意:重要的是要理解,当规则的一部分被触发并触发、重置操作或更改某些属性时,规则将被重新评估。这在使用前一个关键字时特别重要,因为它将只访问其更改触发规则计算的属性的前一个值。对于任何其他属性,以前都将访问当前值。对于规则本身更改的规则中的属性,使用previous关键字可能会导致重复操作,因为规则将被多次重传。

因此,如果我试图检查以前的严重性状态并更改规则中的严重性,就会导致重新评估规则并得到无穷大循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69047846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档