nagiosを使用してサーバを監視する

さくらのVPSおよびOsukiniサーバにnagiosをインストールして、相互に監視を行うことにします。ここでいう監視とはいわゆる死活監視と呼ばれるもので、サーバ自体もしくはサーバ上のサービスが停止して時にメールで通知するという環境を整えます。メールサーバ自身が停止しているとメールが受信できませんので、通知メールは直接Gmailのアドレスに送ることにします。

Cent OSのパッケージでは提供されていないので、以下の公式サイトからNagios CoreとNagios Pluginsの最新版をダウンロードします。今回はnagios-3.3.1.tar.gzとnagios-plugins-1.4.15.tar.gzを使用しました。

  • http://www.nagios.org/

まずはインストールに必要な環境を準備します。ソースからインストールするのでgccなどのパッケージをyumでインストールします。マップ機能を使用するためにはgd-devel, libjpeg-devel, libpng-develのパッケージがインストールされている必要がありますので注意が必要です。監視対象がそれぞれ1台しかないのにマップ機能が必要かという疑問はありますがそれは置いておきます。また、ユーザnagiosで動作するのでユーザを作成します。

準備が整ったら、ソースを展開して以下のコマンドでインストール完了です。

./configure
make all
make full-install
make install-conf

次に設定を行います。監視するサービスはping, httpd, smtp, dns, imapとします。設定は/usr/local/nagios/etc/の下にあります。まずはnagios.cfgを変更して使用する設定ファイルを選択します。サーバの設定はserversディレクトリの下に置くことにします。

まずobjects/contact.cfgを編集して通知先のメールアドレスを設定します。次にobjects/command.cfgを編集してチェックのためのコマンドの設定を行います。チェックに使うプログラムは/usr/local/nagios/libexec/にありますが、デフォルトで設定のない場合もありますので、他のコマンドを参考に作成します。

そして監視用の設定を作成すれば設定は完了です。

ウェブから管理画面にアクセスするにはapacheのAliasの設定とベーシック認証の設定が必要です。apacheの設定は/etc/httpd/conf.d/の下のnagios.confにデフォルトがあります。バーチャルドメインの中で設定ないと全てのドメインのAliasとして有効なのでバーチャルドメインの設定の中に設定を移動した方がよいかもしれません。

ベーシック認証の設定はデフォルトでは/usr/local/nagios/etc/htpasswd.usersに置きます。htpasswd -c htpasswd.usersで作成できます。ここでユーザ名はnagiosadminにします。他のユーザ名にした場合にはcgi.cfgを編集して管理画面の権限を設定する必要があります。