ウノウでは「nagios」を使用し、MySQL、memcache、http、ping、DNS、SMTPの各サーバについて以下のような項目で生存監視を行っています。
- いつ(例:土日を除いた10時〜22時までの間で)
- どのタイミングで(例:n回連続で、復旧したら)
- 何が起こった時に(例:疎通が取れない)
- どうするか(例:メールで通知する)
表3:サーバの生存監視項目
Red Hat系のディストリビューションでは、以下のように作業することでインストールから設定までを行うことができます。
まず以下のようにyumコマンドを実行してインストール作業を行います。
% yum install nagios nagios-plugins nagios-plugins-http
設定ファイルは/etc/nagios配下のディレクトリに保存されます。
% ls /etc/nagios
private/ cgi.cfg-sample commands.cfg-sample localhost.cfg-sample nagios.cfg-sample
基本的な設定ファイルは以下のようになります。
名前 |
役割 |
nagios.conf |
ログファイルの指定や、他設定ファイルのインクルード、基本設定を行います |
command |
監視に使用するコマンドファイルの定義を行います |
localhost.cfg |
どのコマンドをどのホストにどのように使用するかを定義します |
表4:nagiosの設定ファイルの内容
まず全体的な設定を行うため、nagios.confを以下のように編集します。
% vi /etc/nagios/nagios.conf
# ログファイル
log_file=/var/log/nagios/nagios.log
# コマンドファイル
cfg_file=/etc/nagios/commands.cfg
# ホストファイル
cfg_file=/etc/nagios/localhost.cfg
# .....
続いてcommandファイルを設定し、nagiosが使用するコマンドの定義を行います。ここでは例としてhttpサーバの疎通確認について設定します。
commandファイルの内容を編集し、動作と名称を決めてコマンドの定義を行います。以下の例では「check_http」という実行ファイルでhttpサーバの疎通をチェックしており、名称を「check_http」と指定しています。
% vi /etc/nagios/commands-cfg
# 'check_http' command definition
define command{
command_name check_http
command_line $USER1$/check_http -H $HOSTADDRESS$
}
さらにlocalhost.cfgで、先ほど名称を決定したコマンドをどのように、どのホストに対して使用するかを定義します。今回は、以下のように設定を行います。

(画像をクリックすると別ウィンドウに拡大図を表示します)
まず最初に設定している「timeperiod」は、どの時間帯に監視を行うかをあらわしています。例では24時間365日、監視を行うように設定しています。
次に「contact」で、コンタクト(連絡手段)を定義します。ここでは送信先のメールアドレス設定などを行います。なお「service_notification_command」を使用すると、メールだけではなく、IRCなどに通知することもできます。
「host」は監視対象の設定です。この項目では設定を継承することができ、最初に「linux-server」という汎用のhostを定義し、それを継承して「localhost」というサーバを定義しています。この項目ではコンタクトの設定で定義した「contanct-group」を設定しておきます。
最後に「service」で実際の監視の設定を行います。この項目でも設定の継承が行えるので、「local-service」を継承し、「hostname」には先ほど定義した「localhost」を、コマンドには「command.conf」で定義したコマンドをそれぞれ設定します。
設定が終了したら以下のコマンドを実行し、httpサーバとnagiosを起動した後でhttpサーバを停止させます。
$ /etc/init.d/httpd start
$ /etc/init.d/nagios start
$ /etc/init.d/httpd stop
正しく設定が行われていれば、設定したメールアドレスに通知が届きます。
|