Mysql

Zabbix:如何配置一個觸發器來檢查過去 10 分鐘內是否更改了特定值?

  • July 20, 2014

我的任務是監視某些 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可能更合適。

引用自:https://serverfault.com/questions/613974