Zabbixのnodata関数の使い方について
Zabbixのnodata関数ですが、公式によると下記のように定義されていますが、
ログ監視の場合なら、ここでいうデータとはトリガーで監視対象となっているメッセージに限ったものなのか、それとも監視対象となっているログそのものなのでしょうか。
1 - 期間内(秒)にデータを1つも受信しない場合。期間は30秒以上であることが必要です。
0 - それ以外
また、どういった場合に上記のnodata関数を使用するものなのでしょうか。
https://www.zabbix.com/documentation/2.2/jp/manual/appendix/trigger...
TNK - 投稿数: 4730
nodata()の判定をする対象は、監視対象になっているログファイル
そのものではなく、nodata()を使用するアイテムです。
つまり、アイテムの設定でログファイルに対して特定の文字パター
ンでフィルタリングして値を取得しているような場合は、その文字
パターンに合致するログが指定した時間以上出力されなかったこと
を検知するために使用します。
nodata()の通常の利用方法は、Zabbixトラッパーを使用してZabbix
サーバーに対して定期的に値が送られてくるはずなのに、値が送ら
れてこないということで障害とみなす時などに使用します。
特殊な例ですが、テンプレートの「Template App Zabbix Agent」
で使用されている、Zabbixエージェントに接続できない状態が5分
以上経過していることを検知する場合にも使用できます。
ログの場合は、障害を検知してトリガーの状態が障害のままなのを
一定時間経過後に自動的にトリガーの状態を正常に戻すためにも使
用したりします。
ただし、関数nodata()を条件式に使用すると、30秒毎にその条件式
が評価されるので、障害ログの発生以外でもイベントが発生してし
まう場合があります。
ログ監視で使用する場合には、その動作を理解された上でご使用く
ださい。
私がnodata()の副作用と呼んでいるこの動作に関しては、以下のURL
の回答でも書いていますので、そちらもご参照ください。
Windowsログ監視の設定について
http://www.zabbix.jp/node/2758
注意点としては、値が取得できないことを検知するとしても、アイ
テムの値を取得しようとしてタイムアウトが発生したり、正常な値
を取得できなかったりすることによって、アイテムの状態が「取得
不可」となってしまった場合には、nodata()は機能しなかったと思
います。
さらに、アイテムの状態が「取得不可」になってしまうと、デフォ
ルトの設定では、次にそのアイテムの値を取得しようとするのは10
分後になったはずです。
つまり、アイテムの状態が「取得不可」になるようなアイテムに対
しては、nodata()は使用しない方が良いでしょう。
baka1241 - 投稿数: 13
ご回答、ありがとうございます。
大変、勉強になりました。