Guides, HowTos and Tips for Technology Geeks - The Geek Stuff

システム運用で重要になる機能のひとつにシステムモニタリングがある。サーバで動作しているサービス、サーバのハードウェア、ネットワーク機器など、サービスを提供している対象やH/Wを常時モニタリングし、問題が発生した場合にただちに対処できるようにしておく必要がある。

システムモニタリングには終わりがないのが辛いところだ。どんなに堅牢に設計して実装しても、何らかの問題は発生する。システムモニタリングは終わりのない戦いだ。ここでモニタリングを軽視してずさんなモニタリングシステムを構築してしまうと、モニタリング業務を困難なものにし、安眠を奪い取ることにもつながってしまう。10 Things Any Monitoring Software Should Do (Nagios Does it) - The Geek Stuffにおいて、モニタリングソリューションを構築する場合に実装すべき10の項目が紹介されている。毎日効率のいいモニタリングを実施し、安眠を確保するための指針だ。わかりやすくまとまっており参考になる。紹介されている内容は次のとおり。

  1. 単一のモニタリングソリューションを構築する。サーバ向けのモニタリングはA、ネットワーク機器のモニタリングはB、ハードウェアのモニタリングはC、といったように複数のモニタリングソリューションを用意するようなことはしない。優れたモニタリングシステムはプラグインなどの仕組みで複数の異なる種類の対象をモニタリングするための機能を提供している。
  2. 効率のいい通知システムを提供する。モニタリングシステムやサービスを担当者ごとに通知できるようにするほか、電子メール、ページャ、SMS、IMなど複数の方法で通知できるようにする。またどの程度の問題が発生した場合に通知を実施するかを細かく設定できる方がいい。
  3. Webダッシュボードを提供する。Webダッシュボードにいけば全体の状態や問題の監視、警告状況などをチェックできる。またWebダッシュボードから個々のモニタリング対象へ掘り下げてチェックできるようにする。
  4. 段階的問題通知を提供する。たとえばデータベースに問題が発生してデータベースアーキテクトに通知がいったとする。データベースアーキテクトが時間内に問題を解決することができなければ、マネージャに対して新しく問題通知を実施するといった機能を提供する。
  5. スケーラビリティと分散モニタリングの機能を提供する。数千のサーバやサービスをオーバーヘッドなくモニタリングできるべき。複数のモニタリングシステムとともに分散モニタリングをサポートする。
  6. 複数のモニタリングレポートを生成する。たとえば、稼働率、傾向、管理者向けの通知レポートなど。サポートは毎日、毎週、毎月または指定した期間単位で生成できた方がいい。
  7. サードパーティアプリケーションからモニタリングソリューションが利用できるようにAPIやフレームワークを提供する。またサードパーティベンダが実装しやすいように十分な情報も提供する。
  8. オープンソースソリューションとして提供する。モニタリングソリューションは十分に信頼性が高い必要がある。オープンソースソフトウェアとして提供することで潜在的なセキュリティ問題を発見できる可能性がある。より長く市場にあり、よく多くの会社で採用されている方がよりよい。
  9. コミュニティサポートまたは商用サポートが提供されている。大規模スケールでのモニタリングソリューションを構築しようとすれば、商用サポートを得たいと考える。
  10. 学習が容易で使いやすいこと。これはとても自然な発想だが、多くのシステムが学習が困難で扱いづらいものになってしまっている。モニタリングソリューションは簡単に実装できて学習しやすい方がいい。

10 Things Any Monitoring Software Should Do (Nagios Does it)ではこうした特徴をもったモニタリングソリューションの構築はNagiosを使えばすべて実現できると説明している。Nagiosは人気の高いモニタリングソリューション。The Geek Stuffは以前、モニタリングソリューションの人気投票を実施しているが、そこでもNagiosは高い人気を得ている。