web-dev-qa-db-ja.com

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:これは、先ほど作成したトリガーの最新データです。 enter image description here 私の質問は:

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?
3
Itai Ganot

あなたの質問は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がより適切かもしれません。

2
Michael Hampton