URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

ZabbixでWindowsのサービスやプロセスを監視


 またZabbixの設定変更とかの依頼が来そうなので予習したりしています。
 Zabbixに関してはいつも必要なところだけネットで調べて間に合わせている感じになってしまいますが、そろそろちゃんと体系立てて勉強したいな~。

 基本だけどやることになりそうなことのメモ

 今回は主にWindows上で動作するサービスとかプロセスの監視がメインになりそう。
 とりあえずZabbixは2.0、監視対象にはエージェントがインストール済みでホスト登録も完了。

 空テンプレートを作成して、それぞれアイテム作成

【サービス】
タイプ : ZABBIXエージェント
キー : service_state[<サービス名>]
データ型 : 数値(整数)
値のマッピングの使用 : Windows service state

 戻り値の意味は、
 0 : 実行中
 1 : 一時停止中
 2 : 開始待ち
 3 : 一時停止待ち
 4 : 続行待ち
 5 : 停止待ち
 6 : 停止
 7 : 不明
 255 : サービスが見つかりません


【プロセス】
タイプ : ZABBIXエージェント
キー : proc.num[<プロセス名>]
データ型 : 数値(整数)

 戻り値は、対象のプロセス数

アイテムからトリガーを設定
使うのは"last"と"count"くらいかな

【last】

 最新値を評価
 例)最後にチェックしたプロセス数が1未満のときに障害
  proc.num[<プロセス名>].last()<1


【count】

 ある一定の期間に収集した値を評価
 例)直近3回のサービスのステータスが全て「実行中以外」だったとき
  service_state[<サービス名>].count(#3,0,"ne")=3
  ※count(#3,0,"ne")の引数の意味は、
   「直近3回のチェックの結果のうち戻り値"0"以外が返ってきた回数」
   になるのかな

 "count"の使い方はもう少しいろいろ実際に動かしながら試してみる。
 サービス名やプロセス名はマクロで置換するようにしたい。

 まずはこんなところですね。