我已经被赋予了监视某个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 ~]#
下一步是创build一个项目,我已经这样做了,现在我正在尝试configuration触发器。 如果该值在最近10分钟内没有更新,触发器应该会发出通知。 如何configuration触发器来反映这种情况? 谢谢!
编辑#1:这是我刚刚创build的触发器的最新数据:
我的问题是:
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?
你的问题不是100%清楚,所以我已经涵盖了两种可能性:
如果您想检查数据是否不是来自Zabbix代理,请使用无nodatafunction。
返回:
1 – 如果在一段时间内没有收到数据,以秒为单位。 这段时间不应该less于30秒。
0 – 否则
例如,如果10分钟内没有收到数据,触发器将触发:
{mysql.query.nodata(600)}=1
如果要检查值是否未更改,请使用delta 。
返回一个句点中的最大值和最小值之差('max()'减去'min()')。 周期以秒为单位设置,或者作为第一个参数中收集的值的数量(前面加一个#散列标记)。
例如,如果该值在10分钟内没有改变,则触发该触发器:
{mysql.query.delta(600)}=0
最后,你可能想要重命名你的项目。 mysql.query是非常通用的,并已被普通的MySQL模板使用。 像aggregator.highest_click_id这样的东西可能更合适。