Hatena::ブログ(Diary)

夢見る大学生のはてな日記

2011-02-03

Nagios その4


監視設定

HTTPサーバの監視サービスを例に、監視する間隔の変更を行いたいと思います。


設定方法

設定を変更するためには、"/etc/nagios3/conf.d/services_nagios2.cfg"を以下のように変更します。

赤字の部分を追加)

# check that web services are running

define service {

hostgroup_name http-servers

service_description HTTP

check_command check_http

use generic-service

notification_interval 0 ; set > 0 if you want to be renotified

normal_check_interval 1

retry_check_interval 1

}

追加したものの説明。

normal_check_interval 通常時の監視間隔(分)

retry_check_interval 異常時の監視間隔(分)


ちなみに、実際にHTTPサーバを停止すると以下のようなメールが届きました。

***** Nagios *****

Notification Type: PROBLEM

Service: HTTP

Host: sawako

Address: 10.1.123.10

State: CRITICAL

Date/Time: Thu Feb 3 19:01:27 JST 2011

Additional Info:

接続を拒否されました


実験

当たり前といえば当たり前のことなのですが、ランダムにサーバを停止し

停止しからメールによってサーバの停止を知らされるまでの時間を計測してみました。

今回の環境としては、上記の設定の通り1分間隔で監視を行っています。


回数\時刻HTTPサーバ停止メール受信
1回目20:59:1121:01:3322
2回目21:06:3821:07:3355
3回目21:08:5521:09:3338
4回目21:10:3721:11:3356
5回目21:13:2121:13:3348

平均時間 43.8(s)



平均43秒なら、最悪そこそこ早く手を打てるでしょうかね…?

1分以下でも監視出来るようなので、最悪の事態には一秒でも早く復旧させなければならないシステムの場合には

そのような設定を選ぶ必要があるかもしれません。


そもそも、サーバ止めちゃいけないんでしょうけどね。。。



参考にさせていただいたサイト

NAGIOSの設定方法 - ほぷしぃ

Nagios3 その3


監視対象の追加(その2)

今回は、監視対象をグループに所属させることで追加させてみたいと思います。


下準備

前回の内容ができていれば問題ありませんが、監視対象をNagiosに追加しておく必要があります。

"****(お好きな名前をどうぞ)_nagios2.cfg"というファイルを作成し以下のように記述します。

define host{

use generic-host

host_name ****

alias ****

address ****(監視したいサーバのアドレス)

}


グループに追加

今回はSSHサービスの起動確認を行う監視サービスの追加を行いたいと思います。

"/etc/nagios3/conf.d/hostgroups_nagios"ファイルに変更を加えます。

# A list of your ssh-accessible servers

define hostgroup {

hostgroup_name ssh-servers

alias SSH servers

members localhost

members ****

}


再起動

あとは、前回と同様に設定を有効にする為にNagios再起動を行います。

# /etc/init.d/nagios3 restart


参考にさせていただいたサイト

debian/Nagios - FrontPage

Nagiosプラグインの紹介 - インフラエンジニアway

Nagios その2


監視対象の追加

今回は対象1つ1つに対して、個別に設定を行う方法で追加してみたいと思います。


下準備

/etc/nagios3/conf.d/localhost_nagios2.cfgというファイルに

ローカルホストを監視すための記述がされており、このファイルを参考にして新たな監視対象の追加を行います。

#cp localhost_nagios2.cfg ****(お好きな名前をどうぞ)_nagios2.cfg


追加

今回は"check_pingコマンド"のみでの監視で、対象の追加を行いたいと思います。

"****_nagios2.cfg"を以下のように変更します。

define host{

use generic-host

host_name ****

alias ****

address ****(監視したいサーバのアドレス)

}

# ping service

define service{

use generic-service

host_name ****

service_description PING

check_command check_ping!500,10%!1000,20%

}


check_pingコマンド

"check_command check_ping!500,10%!1000,20%"の

"!500,10%!1000,20%"の部分が非常に理解しにくいように思うので少し解説したいと思います。

と言っても完全に受け売りなのですが。。。w


このコマンド(/usr/lib/nagios/plugins/check_ping)は、デフォルトで以下のような引数を必要としています。

check_ping -H -w ,% -c ,%

"-w"、"-c"でそれぞれに"WARNING"と"CRITICAL"の値を指定する必要があります。

例えば、"-w 500,10%"と書くと500ms以内の応答と10%以下のロストが閾値となりこれを超えると"WARNING"扱いとなるようです。

そしてNagiosの.cfgファイルに記述する際には、間に"!"を記述します。

また、これ以外にもオプションを使用したい場合には"!-p 10"などと追加すればおkです。

(しかし試しに、"!-w 500,10%!-c 1000,20%"と書いてみましたがエラーでした。)


再起動

そして設定を有効にする為、Nagios再起動を行います。

# /etc/init.d/nagios3 restart


しばらくすると、このように問題なく動いていることが確認できるかと思います。

f:id:nk87:20110203163816p:image



参考にさせていただいたサイト

check_ping (version 1.4.12) - うみうし.dip.jp

Nagios その1

Nagiosのお話を。

f:id:nk87:20110203154459p:image


Nagiosとは

オープンソースコンピュータシステムおよびネットワークの監視のためのアプリケーションソフトウェアである。

- Wikipedia


インストール

今回の環境は、Ubuntu10.10で行いました。 ちなみに、Debianでも構築出来ました。(要パスワードの設定)

インストール自体ははaptitudeを使ってサクっと。

#aptitude install nagios3

メール → ローカル

パスワード → ****


ウェブブラウザから"http://****(設定したサーバのアドレス)/nagios3/"にアクセス。

ユーザ名 nagiosadmin

パスワード ****


インストールされた段階で、ローカルホストの監視を行っている状態になります。

f:id:nk87:20110203154457p:image



続きは次回。