多数の障害検知が同時に起きたときについて
お世話になります。
1台の物理VPSサーバに十数台の仮想Webサーバが
稼動している環境を、zabbix のウェブ監視のみで
監視していますが、物理VPSサーバがダウンしたときに、
同時に十数の仮想Webサーバが障害になりました。
その際、障害メールが送信されたのが2通のみで、他の
仮想Webサーバの障害メールは送信されませんでした。
--------------------------------------------------
(zabbix サーバの環境)
zabbix 2.0.6、CentOS 6、MySQL 5.1
ウェブ監視は当VPSサーバ以外にも数十台分設定あり。
ウェブ監視間隔は2分30秒(150秒)。
当VPSサーバ以外では、ウェブ監視以外にもzabbix agent
による複数の監視を実施している。
当VPSサーバの障害時間は約1時間。
トリガーの設定({xxx:web.test.fail[xxx].count(300,0,"ne")}>1)
※ステップの失敗が連続2回で障害検知
--------------------------------------------------
状況を確認したところ、下記のことが分かりました。
・当VPSサーバの障害時間中で、当VPSサーバを含む、他の
全てのサーバのウェブ監視について値がほとんど取れておらず、
値が取れていても障害時間中2回くらい。また、値の
取れている間隔が5分から25分の間でまちまちに
なっている。
・ウェブ監視以外のエージェント監視等は、障害時間中も
値が取れている。
・zabbix_server.log で、障害があった仮想Webサーバの
エラー(Timeout was reached)があった。
・障害時の zabbix サーバのCPUやメモリ、インターフェースの
状態は普段と変わらない(特に負荷は見られない)。
・zabbix サーバで、当時のキューの状態は確認できていない。
・zabbix サーバ上その他のログファイルには、当障害に
関するようなエラーは特に見られなかった。
これらのことから、キューにウェブ監視が溜まってしまい、
ウェブ監視のみ値が取れなかったのではないかと推測しています。
そこで、下記についてご教授いただきたく、よろしくお願いいたします。
(1)ウェブ監視で値が取れていなかったのは、キューにウェブ監視が
溜まっていたのが原因かどうか。他に考えられる原因はないか。
(2)トリガーの設定を工夫すれば、このようなケースでも全ての
障害メールを送信することは可能かどうか。
(3)近々、zabbix サーバやDBのバージョンアップ(zabbix 2.0.8、
MySQL 5.6)を行う予定ですが、多数の障害検知が同時に
起こった場合、やはりメールが送信できないケースや
長時間値が取れないケースは避けられないかどうか。
yanta1 - 投稿数: 15
バージョン 1.8 のときの経験ですが、
ウェブ監視でタイムアウトになった場合、値が取得できず「不明」という状態になったと思います。この場合、トリガーの条件に合わない、もしくは、判定自体が行なわれないかで、障害を検知できません。
回避方法としては、Zabbix側ウェブ監視のタイムアウト値をWebサーバー側のタイムアウト値よりも大きくなるよう調整して、必ずWebサーバーから値が返るようにします(「不明」状態を作らない)。
あるいは、トリガーで nodata() などを使えば障害検知できるかもしれません。
TNK - 投稿数: 4754
恐らく、トリガーやアクションの設定にも改善が必要だと思われま
す。
yanta1さんも書かれている通り、明確に障害となる値を取得できた
時は、アクションを実行できますが、アイテムの値が取得できずに
状態が「取得不可」になってしまった場合には、トリガーでの条件
に合致せず、アクションが実行されない場合があります。
(1)については、デフォルトでは、HTTPPoller(Web監視用のデータ
収集用プロセス)が1個ですので、1つのWeb監視にタイムアウト待ち
などによって時間がかかる場合にも、次のWeb監視ができませんの
で、必要に応じてPollerの数を増やすと良いかもしれません。
/etc/zabbix/zabbix_server.confのStartHTTPPollersの数を確認し
てみてください。
(2)については、もちろん可能です。
(3)については、各種プロダクトのバージョンアップで改善される
部分もあるかもしれませんが、今回の場合は、まずは、トリガー
やアクションの設定を確認された方が良いように思えます。
例えば、値が取得不可となった場合に、代替手段を用意して別の
方法でも監視するようにしてくのも1つの方法ではないでしょうか。
z1000 - 投稿数: 21
ご教授いただきました方法で確認したいと思います。
ありがとうございました。