【问题标题】:zabbix - trigger on multiple items greater than 0zabbix - 在大于 0 的多个项目上触发
【发布时间】:2016-08-12 19:11:27
【问题描述】:

我有多个作为陷阱的项目,它们返回整数,如下所示。

app.tidal.Health.HighPriority.MessagesInQueue
app.tidal.Health.CommDefault.MessagesInQueue
app.tidal.Health.Default.MessagesInQueue

如果其中两个或多个在最后 3 次检查中返回大于 0 的值,我想创建一个触发器以发送严重性高消息。

我很难设计我的触发器,这是我目前拥有的:

{Template_App_Tidal_Masters:app.tidal.Health.CommDefault.MessagesInQueue.min(#3)}>0 and
{Template_App_Tidal_Masters:app.tidal.Health.Default.MessagesInQueue.min(#3)}>0 and
{Template_App_Tidal_Masters:app.tidal.Health.HighPriority.MessagesInQueue.min(#3)}>0

但显然它不起作用,因为它是一个 and 语句,所以在最后 3 次检查中,所有 3 都必须大于 0。将触发器格式化为 3 行以使其更清晰。

【问题讨论】:

    标签: zabbix


    【解决方案1】:

    这应该可行:

    ({Template_App_Tidal_Masters:app.tidal.Health.CommDefault.MessagesInQueue.min(#3)}>0) +
    ({Template_App_Tidal_Masters:app.tidal.Health.Default.MessagesInQueue.min(#3)}>0) +
    ({Template_App_Tidal_Masters:app.tidal.Health.HighPriority.MessagesInQueue.min(#3)}>0) > 1
    

    每个部分首先评估单个项目是否大于 0。如果为 true,则表达式的该部分评估为 1,如果为 false,则为 0。最后我们总结这些评估的结果(不是原始项目值)并检查两个或多个项目的值是否大于零。

    【讨论】:

    • 是的,问题是任何项目都可以大于 1,所以如果一个是 3 的值,而另一个 2 0 它将触发,但如果其中任何两个大于,我想要一个触发器0
    • 对此进行扩展是否有办法保留项目值(即 644)但将其表示为 1?那么你的解决方案就可以了。
    • 不,我提供的表达式应该只在任何两个大于 0 时触发(除非我搞砸了)。将扩展答案以进行更多解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多