nagiosとの違いとシンプルチェックの挙動について
お世話になります。
■要約
nagios の plugin で監視していたものを、zabbix にどう落とし込んだか、をご教示いただきたいです。
■環境
CentOS6.5
zabbix-server 2.0.12
agent側にはzabbix-agentがインストールできない機器が多数(Vine Linux3.Xが動いているなどの理由で。。。)
■詳細
監視環境をnagiosからzabbixに移行するにあたって、以下のような事象が発生しました。
・nagiosの「check_http」プラグインで監視していたホストで、HTTPSのCriticalアラートが発生した
・zabbixで同じ機器に対してシンプルチェックの net.tcp.service[tcp,,443] と net.tcp.service.perf[tcp,,443]で監視していたが、
net.tcp.service はUpのまま、net.tcp.service.perf も1ms以内の結果が得られていた
■考察
nagiosの check_http のソースを見ると、どうもOpenSSLのSSL_connect関数を使用しているようで、こちらはSSL/TSLハンドシェイクの成功をもってOKとしているようでした。
※未検証です。
一方zabbixのシンプルチェックはC言語のconnect関数を使用しているようで、こちらはTCPの3wayハンドシェイクの成功をもってOKとしていると認識しています。
この違いから、nagios と zabbix でアラートを発砲する/しないの差が生まれたのかな、と考えております。
■危惧していること
上記の例はHTTPSの話になりますが、現在、zabbixでシンプルチェックでTCPポート番号に対する疎通と応答監視を複数行っており、nagiosの各pluginのように、「ユーザーの実動作に基づいた(近い)監視」というのが行えていないのでは、と危惧しております。
※nagiosの check_dnsプラグインでは nslookupの結果でOK/NGを判断するなど、シンプルチェックとは確認している内容が大幅に違う。
nagiosとの差分を生まないようにするための施策として、
・nagiosと同じレベルで監視したければnagiosのplugin用のwrapperを用意して外部チェックで監視する
・シンプルチェックはサービス死活監視レベルしかできないものだと割り切る
・HTTP/HTTPSの場合はウェブ監視を用いる
とすればよいのかなと考えております。
シンプルチェックに対する捉え方?や、そもそも上記の認識は間違っている、などありましたらご教示いただけますと幸いです。
また、要約欄にも記載しておりますが、nagios から zabbix(逆でも)に移行したことがある方がいらっしゃいましたら、差分をどう吸収したのか
⇒割り切ってシンプルチェックを使用した
⇒zabbix向けに全サービス用のプログラムを書いた
⇒そもそもzabbix-agentを使用する前提だからシンプルチェックは使わないようにしてる
など、ご意見いただけますと幸いです。
TNK - 投稿数: 4769
Webサイトが正常に稼働しているかをチェックする際に、
「ユーザーの実動作に基づいた(近い)監視」
を目的とされるのであれば、net.tcp.service[]や
net.tcp.service.perf[]ではTCPでのハンドシェイクまでであった
と思いますので、目的には適していないと思います。
ZabbixのWeb監視の機能を利用することをご検討ください。
私自身、一部の環境では、Web監視の機能を利用して、特定のURLに
アクセスすると、アプリケーションからDBへのアクセスが正常にで
きるかチェックできるようなアプリケーションを用意して、
・Webサーバ
・アプリケーション基盤
・DBサーバ
が正常に連携できているかをチェックするようにしています。
特定のポートでLISTENしているかをチェックすればよいだけであれ
ば、net.tcp.service[]を利用することもあります。
移行時に、一時期NagiosのプラグインをUserParameter経由で呼び
出して監視させたこともありますが、Zabbixで持っている機能での
監視に切り替えたり、代替のスクリプトを用意するなどして、現在
はNagiosのプラグインは利用していません。
enola - 投稿数: 19
TNKさん
ご回答いただきありがとうございます。
・シンプルチェックでは目的の監視ができないこと
・Web監視機能でnagiosの代替としての要件が満たせそうであること
・TNKさんの環境ではnagiosのプラグインを使用していないこと
がわかりました。ありがとうございます。
確かにWeb監視を使えばDBへのアクセスまで確認できますね。
たいへん参考になります。ありがとうございます。