仕事でNagiosに触れるようになって、はや1年が経ちました。
最初は調査としてひととおり動作させてみたり、データの流れを追っかけて内部構造を理解したりといったことを続けていたのですが、最近になってついにNagiosベースの監視システムの開発も始まりました。
今後しばらく付き合うことになるだろうNagiosについて、このブログでも本格的に触れて行くことにしようと思います。
まずは、Nagiosってなんだ?ってことですよね。
Nagiosはオープンソースのネットワーク監視ツールです。Linux上で動作します。多くのLinuxディストリビューションではパッケージとして準備されています。日本での採用実績としては、ネットなどで見た限りでは、はてな、mixiなどがあり、GREEも独自監視システムに移行する前は使っていたようです。いずれも数百〜数千レベルのホスト数での監視を行っていることから、大規模監視にも十分活用できるツールと言って問題ないでしょう。
今回の記事は第1回ということもあり、Nagiosそのものの説明よりは、Nagiosが活躍する舞台であるネットワーク監視の概要について説明しようと思います。
言うまでもないことですが、現代社会はコンピュータで溢れています。インターネットをはじめとするネットワークが張り巡らされており、ネットワークには多くのコンピュータが接続されて、様々な活用がされています。
ビジネスの世界から一般生活に至るまで、ネットワークやそこに接続されているコンピュータの恩恵を受けており、そのネットワークやコンピュータが正常に動作しなくなると、様々な問題を生じてしまいます。
そのため、まずネットワークやコンピュータは、正常に動作し続けなければなりません。つまり、ネットワーク自体やコンピュータ自体の信頼性が問われることになります。機器の冗長化を図り、問題が発生した際に自動的に正常に動作している機器への切り替えを行うフェイルオーバーといった仕組みを取ることは多いでしょう。
また、ネットワークやコンピュータを単なる機器としてだけ捉えるのではなく、全体的にシステムとして捉えると、コンピュータの上で動作しているソフトウェアも正常に動作していなければなりません。コンピュータは正常に動作していても、例えばその上で動作しているデータベース管理システム(OracleやMySQL)が停止していては駄目だというわけです。
さらに、一連のシステムの運用の中には、人間系の作業が発生することもあり、その場合は、その作業がきちんと行われているかも重要になってきます。
このように、まずシステムを構成している各部分の信頼性は重要ですが、それも100%ではありません。やっぱりネットワークの接続がうまくいかない時もあるし、コンピュータも故障することがあるし、突然OracleやMySQLが落ちることもあるわけです。
そうした時には、すぐに何らかの作業を行って復旧しなければならないのですが、まずはそうした問題が起きたということをいち早く知る必要があります。ここにネットワーク監視の第一の存在意義があります。
ここで、ネットワークの接続や、コンピュータそのものの起動については、PINGを打てば確認できるでしょう。
ネットワーク監視の第一歩はPINGです。PINGはコマンドラインからいちいち実行することも出来ますが、ネットワーク監視は基本的には24時間365日行う必要があり、また、監視対象となる機器が何十台、何百台、何千台と増えることを考えると、当然ながら「定期的に、自動で」PINGを打つ仕組みが欲しくなります。さらに、機器が正常に動作している時は基本的には作業はないわけで、何か問題があった時だけメールなどで知らせてくれる仕組みがあれば良いでしょう。その仕組みとして提供されているのが、ネットワーク監視ツールです。
さて、今回はネットワーク監視とは何かということを説明しました。次回はネットワーク監視についてもう少し詳しく見ていくことにしましょう。