6.4にサーバ統合監視ツールのNagiosを使ってWEBサイトの死活監視する本音はAWSのCloudWatchを使いたいんですが、今はAWSとそれ以外が混在している状態なのでしょうがない。WEBサーバはApacheを使っていきます。ブラウザで画面が見えるまでまずはnagiosとnagios-pluginsをインストールします。check_httpがプラグインとして提供されているので。nagios-plugins無事インストールが完了したら設定ファイルをイジイジしていきます。通知先メールアドレスの設定。ちなみにメールサーバによっては通知メールがブロックされるところもあるので注意。******}nagiosはブラウザで状況を監視出来るツールなので、apacheでアクセス出来るように設定ファイルを修正します。valid-user</Directory></VirtualHost>httpsにしたかったのですが443ポートが埋まっていたので、バーチャルホストで444ポートを使用しています。fromでIP制限するのが一般的なようですが、今回の環境はiptablesでipフィルタリングしていて、重複設定になってめんどくさいので全部通しちゃってます。ファイアウォールなど使ってない環境では設定にご注意を。続いて、BASIC認証のパスワードを設定します。nagios自身には認証の仕組みがないので、BASIC認証を使用するのが定石っぽい。nagiosadminサービスを開始します。続いてターゲットのWEBサイトの死活監視をするための設定をしていきます。こちらのエントリが非常に参考になりました。http://d.hatena.ne.jp/t_fujii/20080815/1218770999リモートホスト監視用の設定ファイルを作成します。https://my_web_app.com/indexにアクセスして確認される}check_httpsコマンドはデフォルトでは存在しないので定義してあげる必要がある。$ARG4$}画面から確認してみると404になっていた。timeうまくいかなければ直接check_httpコマンド叩いてみるとデバッグしやすい。変えたら通ったっぽい。あれれ、/indexでもアクセス出来たはずなんだけど...。size=6046B;;;0そしたら先ほど該当部分を修正します。check_https!my_web_app.com!/!10!20〜}画面から確認してみます。やったあ!OKになってますね!ちなみに該当サーバのhttpdを落としてみるとちゃんとCRITICALになりました。メール通知さて、ここまで出来たのはいいのですが、CRITICALになってもメールが飛んできません。なんなん!メール通知が定義されている箇所を読むと、どうやら/bin/mailで送信していることがわかる。$CONTACTEMAIL$}たしかCentOSはデフォで/bin/mailが入ってなかったはず、と思ったら案の定入ってなかったので、mailxをインストールします。mailxよしこれでOK!...と思いきや、やっぱりメールが飛ばない。原因の切り分けのためまずはmailコマンドを直接叩いて確認。notice@example.comちゃんと送信されて、問題なく受信できた。次はmailのログを監視してみる。/var/log/maillogするとCRITICALになってもなんのアクションもされていないことがわかった。そもそもnagiosがメール送信していないということですね。調べるとcheck_httpコマンドの通知設定が無効になっていた。ハマってしまったですよ...。1で通知が有効になる}再度CRITICALにしてみる。やったああ!通知メールが飛んできましたね!感想。死活監視したいだけなのにちょっと手間かかりすぎてしまいました。ホントにそれだけだったらwgetをcronで回しておくだけで出来るので、監視対象が少ないうちはそれで十分かもですね。nagiosは他にもいろんな監視が出来るので今後頼りになるかもしれない。日本CAWのエンジニア。Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。日本CAWのエンジニア。Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。