Zabbix:如何配置触发器来检查特定值在过去 10 分钟内是否发生了变化?

Zabbix:如何配置触发器来检查特定值在过去 10 分钟内是否发生了变化?

我被赋予了监视某些 MySQL 服务器数据库中特定值的任务,如果该值在过去 10 分钟内没有发生变化,我需要发出通知。

我添加了UserParameter_mysql.conf以下行:

UserParameter=mysql.query, echo "select id from resolved_clicks order by id desc limit 1" | mysql -N -u zabbix -pPASSWORD aggregator

并且从 Zabbix 服务器运行检查时,它会正确返回值:

[root@zabbix ~]# zabbix_get -s IP -k mysql.query
7957178672
[root@zabbix ~]#

下一步是创建一个项目,我已经完成了,现在我正在尝试配置触发器。如果该值在过去 10 分钟内没有更新,触发器应该会发出通知。我该如何配置触发器来反映这种情况?谢谢!

编辑#1:这是我刚刚创建的触发器的最新数据: 在此处输入图片描述 我的问题是:

1. What's the meaning of change? 
2. How can I know from looking on the Change row how many seconds 
   have passed since the last 2 checks?
3. How can I test that the trigger is operating successfully without
   having to reproduce the problem?

答案1

您的问题不是 100% 清楚,因此我涵盖了两种可能性:


如果你想检查数据是否未从 Zabbix 代理到达,请使用nodata功能。

返回:
1 - 如果在以秒为单位的时间段内未收到数据。时间段不应少于 30 秒。0
- 否则

例如,如果 10 分钟内未收到任何数据,则会触发触发器:

{mysql.query.nodata(600)}=1

如果您想检查值是否没有改变,请使用delta

返回一个时间段内的最大值与最小值之间的差值(“max()”减去“min()”)。时间段以秒为单位设置,或以第一个参数中的收集值数量(以 # 井号开头)设置。

例如,如果值 10 分钟内没有改变,触发器就会触发:

{mysql.query.delta(600)}=0

最后,您可能想要重命名您的项目。mysql.query非常通用,并且已被常见的 MySQL 模板使用。类似的东西aggregator.highest_click_id可能更合适。

相关内容