2014年1月29日水曜日

Zabbixでロックファイルを監視する方法

■概要
よくあるケースとしてロックファイルが正常に削除されているか、ずっとロック状態になっていないか
という確認をしたいことがあるかと思います
今回はzabbixでロックファイルの存在を監視する例を紹介したいと思います

■環境
CentOS 5.9 64bit
zabbix 2.2.1

■アイテムを追加
以下のアイテムを作成します
  • 名前:lockfile exists check
  • タイプ:Zabbixエージェント
  • キー:vfs.file.exists[/tmp/test.lock]
  • 更新間隔(秒):30
名前、キーで指定するlockfile名は適宜変更してください
その他の項目については特に変更する必要はございません
更新間隔は30秒を指定していますがここの設定によってlockファイルが何秒存在していたらアラートをあげるという部分の条件になるので必要に応じて変更してください
アイテム追加は新規作成したテンプレートか既存のテンプレートに追加した方がいいと思いますが、ホストに直接アイテムを追加しても問題ないです

■トリガー設定
以下のトリガーを作成します
  • 名前:lockfile exists check
  • 条件式:{Original Template:vfs.file.exists[/tmp/test.lock].last()}+{Original Template:vfs.file.exists[/tmp/test.lock].prev()}>1
  • 深刻度:警告
条件式は「Original Template」というテンプレート内にアイテムを作成した場合の設定方法となります

■動作確認
監視データ -> 概要から追加したアイテムの値が取得できているか確認します
ファイルが存在している場合は1が、存在していない場合は0が返ってきます
今回の設定では30秒間隔でデータを取得しにいくようにしているのですぐにアラートがあがると思います
アクションは必要に応じて追加してください

●仕組み
ロックファイルが存在しているどうかを調べることで実現しています
トリガーの設定で前回の値と今回の値を加算した結果が1より大きかった場合にアラートをあげるようにしています
これは例えば30秒で値を取得しているときに30秒前にファイルが存在して今回取得したときにもファイルが存在している場合にアラートあがる動きになっています
つまり、指定した更新間隔時間以上、ロックファイルが存在している場合にアラートをあげてくれています
ただ、この場合はだとファイル作成 -> 削除 -> 作成 -> 削除と繰り返した場合に、たまたま値を取得したタイミングが前回も今回も作成した場合にぶち当たるとちゃんとロックファイルは削除されているのにアラートがあがってしまうという過剰検知を引き起こす可能性もあります

たぶんもっと良い仕組みはあるんだろうけどパッと思いついたのがこの方法でした

0 件のコメント:

コメントを投稿