WEBサービスは作るよりも運用の方がコストがかかるとも言われています。
運用を極力自動化して、コストを減らしたいものです。
ここではウノウで使っているツール類を紹介したいと思います。
1) 疎通、生存監視
webの生存監視などは nagiosを使って監視しています。
nagiosには
- いつ(土日を除く、10時~22時までの間で など)
- どのタイミングで(N回連続で ,復旧したら など)
- 何が起こったった時に(疎通が取れない など)
- どうするか(メールで通知する)
などを細かく設定できる監視ツールです。
ウノウでは
MySQL、memcached、HTTP、ping、DNS、SMTPなどの監視をnagiosで行っています。
2) システムやアプリケーションLOG
ログの監視には swatch を使用しています
swatchの機能には
- どのログを
- どのタイミングで(重複のログは N分おき、指定の形式は検出しない、など)
- どうするか(メールで通知する)
などを細かく設定できる監視ツールです。
ウノウでは
システムログやアプリケーションログ、apacheや mysqlのログは swatchを使用して
監視しています。
3) 日々のリソース統計と監視
日々のリソースの統計と監視にcactiを使用しています。
cactiにはSNMP等によるリソースの監視と RRDToolを用いたグラフの可視化のサポートをしてくれます。可視化をしておくと、いつどのような負荷があったか等の統計的なことから負荷予想がしやすくなったり、停止時の原因究明に役立ったりします。
他にも apacheのプロセス数や MySQLのクエリ発行数なども統計に含めておくと
増設等のタイミングが見極めやすいです。
flikrやくらぶさんでは ganglia という監視ツールを使用しているそうですよ。
監視サーバを同じネットワークにおいておくと、SNMPの監視がしやすかったり
何かと便利ですが、ネットワークがダウンした際に、障害通知メールが
届かないという間抜けなことになってしまうので、監視サーバを監視する
サーバを外部に置く等の対策が必要だと思います。