Mysql
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?
您的問題不是 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
可能更合適。