アイテムが取得不可になる場合について
いつもお世話になっております。
現在Zabbixで下記の様な設定を行っております。
Zabbix : 2.2.9
監視対象ホスト : Windows7(zabbix_agentdインストール・稼働)
監視アイテム1 : データベースモニタにて監視ホスト上のSql-ServerへSQL文実行()
監視アイテム2 : zabbixエージェントにて監視ホスト上のIISのサービス監視(キーservice_state使用)
内部イベントトリガー : イベントタイプ=アイテムが"取得不可"の状態
この設定で通常は値が取得でき、別途設定したトリガーでサービスを停止した場合等も
想定通りに異常検知の通知が行われます。
ここからが本題なのですが、監視対象方ストを電源断した場合、監視アイテム1は取得不可となり
内部イベントトリガーで通知が行われますが、監視アイテム2に関しては通知が行われません。
しかし、1度だけ監視アイテム2に関しても取得不可の通知が行われ、復帰時も復帰の通知が
行われたことがあります(内部イベント設定で復帰時も通知するように設定しています)。
現在、監視対象ホストを電源断させた場合のWEBフロントエンドで監視アイテムの状態を
確認すると、監視アイテム2は正常のままで、監視アイテム1は取得不可となります。
今更ながらどのような時にアイテムの取得不可となり、どのような場合にならないかを
情報収集したのですが、明確に判断できる材料を見つけられませんでした。
恐れ入りますがヒントでも結構ですので情報がございましたらお教えいただけると助かります。
以上、よろしくお願いいたします。
TNK - 投稿数: 4769
Zabbixエージェントを利用した監視であるならば、アイテムの値を
取得しようとしたときに値が取得できなければ「取得不可」になり
ます。
ホストの電源断を行ったのであれば、そのホスト上のエージェント
から値を取得できませんので、取得できている間に異常値を受け取
れればトリガーを発生できますが、取得できなければ取得不可とな
り正常か異常かも判断できません。
監視アイテムの取得間隔はどうなっていますか?
可能性として考えられるものとして、他のアイテムでホストの応答
が無いことによって、監視アイテム2の値取得に行く前にホストが
無効になっているのではないでしょうか?
ホストが無効になってしまっていた場合は、そのホストに対する値
を取得しようとするのを停止したはずなので、そのアイテムの状態
が変化しないのかもしれません。
ですので、サービスだけではなく、ホスト自体が稼働しているかも
障害と判定する基準に盛り込まれてはいかがでしょうか?
Nkjm - 投稿数: 50
TNKさん
ご回答有難うございます。
監視アイテム1・2両方ともに取得間隔は30秒としています。
zabbix_server.logを確認してみたところ下記のようになっておりました。
・通常の監視アイテム1のみ取得不可になり通知が来る場合
20150624 Zabbix agent item "vm.memory.size[free]" on host "XXXX" failed: first network error, wait for 15 seconds
20150624 item "XXXX:db.odbc.select[DB_CHK,{$DSN_NAME}]" became not supported: Cannot connect to ODBC DSN:[SQL_ERROR]:[08S01][20009][[unixODBC][FreeTDS][SQL Server]Unable to connect: Adaptive Server is unava
・監視アイテム2も取得不可通知が一度だけ来た場合
20150619 item "XXXXX:service_state[W3SVC]" became not supported: Not supported by Zabbix Agent
20150619 item "XXXX:db.odbc.select[DB_CHK,{$DSN_NAME}]" became not supported: Cannot connect to ODBC DSN:[SQL_ERROR]:[08S01][20009][[unixODBC][FreeTDS][SQL Server]Unable to connect: Adaptive Server is unava
実際にはこの後ろにネットワークアダプタの検知エラー等も複数出ておりますが、
停止後に発生しているログから今回のアイテムに関係のある部分までを
一部マスキング&省略しております。
過去に1度だけ監視アイテム2(ZabbixエージェントによるIISサービスの監視)の
取得不可通知が送信された時のみ、その異常を検知したログが出ておりました。
これはTNKさんがおっしゃるように、監視のタイミングと停止のタイミングの関係で
たまたま停止後の最初の監視に引っかかったのが監視アイテム2だったので
取得不可となりエラー通知されたと考えてよいものでしょうか?
理由さえわかれば、運用に差し支えるとは考えておりませんし、TNKさんに
アドバイスいただいたように、条件を付加することで通知させない設定も
必要に応じて実施しようと考えております。
ただ、私のアイテム取得不可に対する認識が間違っていないかが気になり
確認したいと思っております。
恐れ入りますが確認いただけますと幸いです。
TNK - 投稿数: 4769
アイテムの値取得のタイミングとエージェントの停止のタイミング
の問題だと思われます。
監視アイテム1の方は、データベースモニタ(db.odbc.select[])を
利用されているとのことですから、Zabbixエージェントが停止して
も、Zabbixサーバから直接確認するので、ZabbixサーバからODBCで
接続できなくなった時点で取得不可になっているのでしょう。
Nkjm - 投稿数: 50
TNKさん
回答有難うございます。
やはりそのように考えればよろしいですよね。
今後必要に応じて条件の追加等対応してみたいと思います。
有難うございました。