仕事でnagiosを使うときがあります。 僕もまだ勉強中ですが、少し前の自分のような人と、少し先の自分のためにnagiosについて説明します。
(少し先の自分は、この記事を見て、微妙なところにツッコミをいれられる予定です。)
nagiosとは
nagiosは、ホストを監視するミドルウェアです。オープンソースです。運用監視ソフトウェアとか統合監視ツールとか呼ばれてます。
ネットワークで繋がったサービスを監視できます。
ざっくりわけて、サーバーとエージェントからnagiosはできているようです。
今の僕の理解では、
- 監視した情報を集めて、通知を飛ばしたりブラウザで閲覧できるようにするのがサーバー
- 監視対象のサーバーの情報を集めるのがエージェント
です。
サーバーのことをNagios CoreとかNagiosホスト、エージェントのことをリモートホストと呼ぶことがあるようです。
nagiosって何を監視できるの?
nagiosは、ホストを監視できます。
例えば、
- あるホスト『example.com』とか『192.168.10.1』にpingを打って返ってくるのかどうか、
- あるホストでsshデーモンが起動しているか
- あるホストのMySQLサーバーが起動してるか
とかです。
シェルでコマンドを実行した結果からわかる情報の監視ができます。
とは言え、SNTPトラップをキャッチすることもできます。
他の監視ソフトは何があるの?
運用監視ソフトウェアの検索すると、オープンソースということで、Zabbixとよく比較されてるようです。
商用のソフトウェアだともっとたくさんあると思います。
調べてみるとたくさん出てきます。
他の監視ソフトと何が違うの?
まず、nagiosとZabbixは、オープンソースです。
nagiosとZabbixを比べるとnagiosは、データベースを使いません。結果はプレインテキストに保存します。設定も、設定ファイルで管理します。
Zabbixは、データベースを使います。設定はブラウザ上で行います。設定ファイルもあるのかもしれないですが、ざっと検索すると、ブラウザ上での設定方法が紹介されてるのをよく見かけます。
Web上の評判を見てる限り、nagiosは設定が細かくできて自由度が高く、玄人向けの印象です。
APMってのとは違う?
統合監視ソフトは、よくモニタリングツール。とか言われます。
モニタリングツールとか、監視ソフトというと、APMというソフトを聞くこともあります。
これは何が違うの?というと、APMはアプリケーションの性能を測定します。
PythonだったらDjangoやgunicorn、JavaScriptならnode.jsに組み込んで、パフォーマンスを測定するようです。
nagiosってどうやって監視するの?
nagiosは、コマンドをシェルで実行して、その結果を見てるようです。 また、リモートホストを監視する場合、sshで接続してコマンドを実行しているようです。
nagiosは、どう監視するかには、プラグインを使いますが自分でプラグインを作ることもできます。
一度、ゼロからインストールして監視コマンドを実行してみるとわかります。
参考図書
以下の本の評判が良さげだったので買いました。
パラパラと見ると、nagiosのプラグインや設定値のカタログのようになっています。
とりあえず、一通りどんなプラグインや設定値項目があるか、には目を通したのですが、300とか400は設定やプラグインが書いてあって、ふむふむ。なるほど。という感じです。(よくわからない)
監視するときに、ここから探して監視を追加していくのが良さそうです。