初めてのmakeserverTOP > サーバ運用/管理 > nagios

nagiosについて

 
Nagios(3系 日本語版)とは

指定されたホストやサービスを監視し、障害や復旧時にアラートをメール通知するなどの機能があるオープンソースで作られた総合監視ツール。

大手DC(データセンタ)などの監視ツールとしても使われており、不正アクセスや構築サーバのリソース・CPU・メモリ状況、サービスの死活監視等を把握します。

 


●インストール準備

1 nagios 実行ユーザ・グループの作成
2 インストール
3 各tarボール・nagios日本語パッチ展開
4 本体・nagiosプラグイン、インストール/nagios 設定
5 Apache設定
6 CGI認証用パスワードファイル作成
7 config各種設定
このような流れで設定していきます。

●nagios 実行ユーザ・グループの作成

# groupadd nagios
# groupadd nagioscmd
# useradd -d /usr/local/nagios -g nagios nagios
(ユーザ: nagios)
(グループ: nagios)
(コマンド用グループ: nagioscmd)

# usermod -G nagioscmd nagios
# usermod -G nagioscmd apache
(「nagioscmd」グループに「nagios」「apache」を所属)

 


●インストール

本体の最新版はここで確認をしてください。
 ※今回はnagios-3.0.1.tar.gzを使用しています。

日本語パッチの最新版はここで確認をしてください。
 ※今回は3.0.1-jp-utf8-1.0b1を使用しています。

「nagios Plugin」の最新版はここで確認をしてください。
 ※今回はnagios-plugins-1.4.11.tar.gzを使用しています。


# cd /usr/local/bin
(「cd」コマンドを使って「/usr/local/bin」移動し、DLします。)

# wget http://jaist.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.1.tar.gz
(「nagios」本体のダウンロード)

# wget http://jaist.dl.sourceforge.jp/nagios-jp/30391/nagios-3.0.1-ja-utf8.patch.gz
(日本語パッチのダウンロード)

# wget http://jaist.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
(「nagios Plugin」のダウンロード)

# ls
(「ls」コマンドを使ってDLしたファイルを確認します。)





 


●各tarボール・日本語パッチ展開

1)「nagios」本体の展開
# tar zxvf nagios-3.0.1.tar.gz
(「tar」コマンドをオプション「zxvf」を使って展開)

# rm -f nagios-3.0.1.tar.gz
(「rm」コマンドをオプション「-f」使って削除)

2)日本語パッチの展開
# mv nagios-3.0.1-ja-utf8.patch.gz nagios-3.0.1
(日本語パッチを展開した「nagios」本体のディレクトリに移動)

# cd nagios-3.0.1
(「cd」コマンドを使ってディレクトリを移動します。)

# ls
(「ls」コマンドを使ってディレクトリ内を表示し確認します。)











# gzip -dc nagios-3.0.1-ja-utf8.patch.gz |patch -p0
(日本語パッチを展開します。)

# rm -f nagios-3.0.1-ja-utf8.patch.gz
(「rm」コマンドをオプション「-f」使って削除)


3)「nagios」本体インストール
# ./configure
# make all
# make install
# make install-init
# make install-commandmode
# make install-config
(インストール終了)

# cd ..
(「cd ..」コマンドを使って1階層上のディレクトリへ移動する。)


4)プラグインの展開
# tar zxvf nagios-plugins-1.4.11.tar.gz
(「tar」コマンドをオプション「zxvf」を使って展開)

# rm -f nagios-plugins-1.4.11.tar.gz
(「rm」コマンドをオプション「-f」使って削除)

# cd nagios-plugins-1.4.11
(「cd」コマンドを使って展開したディレクトリへ移動)


5)「nagios-plugin」インストール
# ./configure
# make all
# make install

 


●Apache設定

# vi /etc/httpd/conf/httpd.conf
(「vi」エディタを使ってパスワード認証をする追加設定をします。)



ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

------ここから追加------
ScriptAlias /nagios/cgi-bin/ "/usr/local/nagios/sbin/"
<Directory "/usr/local/nagios/sbin/">
AuthType Basic
AuthName "Enter your name and password"
Satisfy all
AuthUserFile /usr/local/nagios/etc/.htpasswd
AuthGroupFile /dev/null
Require valid-user
Order Allow,Deny
Allow from all
</Directory>

Alias /nagios/ "/usr/local/nagios/share/"
<Directory "/usr/local/nagios/share/">
AuthType Basic
AuthName "Enter your name and password"
Satisfy all
AuthUserFile /usr/local/nagios/etc/.htpasswd
AuthGroupFile /dev/null
Require valid-user
Order allow,Deny
Allow from all
</Directory>
------ここまで追加------


(編集が終わったら設定を保存して終了します。)


# /etc/init.d/httpd restart
(「httpd」(アパッチ)を再起動します。)





 


●CGI認証用パスワードファイルの作成

htpasswd -c /usr/local/nagios/etc/.htpasswd nagios
(Web画面での認証ユーザ名入力)
New password
(パスワード入力)
Re-type new password:
(再度パスワード入力)






# chown apache:nagios /usr/local/nagios/etc/.htpasswd
(パスワードファイルの所有者を 「apache」 に変更)

# chmod 600 /usr/local/nagios/etc/.htpasswd
(パーミッション変更)

# chmod 711 /usr/local/nagios
(パーミッション変更)

 


●設定ファイル編集

ファイルの概要
cgi.cfg (CGI設定)
commands.cfg (使用するコマンドを定義)
localhost.cfg (監視時間やホストに関する定義)
nagios.cfg (Nagiosのメイン設定ファイルの定義)
contact.cfg(ダウン時等の通知先の設定)
resource.cfg


# cd /usr/local/nagios/etc/
(「cd」コマンドを使ってディレクトリを移動します。)

# cp -p cgi.cfg cgi.cfg.org
# cp -p nagios.cfg nagios.cfg.org
(「cp」コマンドを使って設定ファイルをコピーします。)







1)nagios.cfgファイル
# view nagios.cfg
(「view」コマンドを使い読み取り専用モードでファイルを表示。)

check_external_commands= 1
(CGIから管理コマンドを実行させるためには、「check_external_commands」を「1」にする。デフォルト設定のまま。
0 認証なし 1 認証あり)
(「:q」でview表示を終了します。)











2)cgi.cfgファイル
# vi cgi.cfg
(「vi」エディタを使って編集します。)

use_authentication= 1
(CGIから管理コマンドを実行するには、基本認証を設定する。 デフォルトのまま。0 認証なし 1 認証あり)

default_user_name=nagios
authorized_for_system_information=nagios
authorized_for_configuration_information=nagios
authorized_for_system_commands=nagios
authorized_for_all_services=nagios
authorized_for_all_hosts=nagios
authorized_for_all_service_commands=nagios
authorized_for_all_host_commands=nagios
(合計7ヵ所を実行ユーザ名に変更する(この場合は「nagios」))
(編集が終わったら設定を保存して終了します。)















































# cd objects
(「cd」コマンドを使ってディレクトリを移動します。)

# cp -p commands.cfg commands.cfg.org
# cp -p localhost.cfg localhost.cfg.org
# cp -p contacts.cfg contacts.cfg.org
(「cp」コマンドを使って設定ファイルをコピーします。)


3).contacts.cfgファイル
# vi contacts.cfg

email・・・通知先E-MAILアドレス、携帯アドレスを記載 *37行目位にあります
(編集が終わったら設定を保存して終了します。)









「commands.cfg」「localhost.cfg」は今回は設定の変更はしません。後ほど設定します。

 


●コンフィグの妥当性チェックと起動

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

(正常な場合は【Things look okay - No serious problems were detected during the pre-flight check】が表示されます。)











# chown nagios:nagioscmd /usr/local/nagios/var/rw/
(外部コマンド(webからの操作)が使えるように所有者を変更します。)

# touch /var/www/html/index.html
(「nagios」のデフォルト監視での「HTTP」での警告対策として「touch」コマンドで「index.html」の空ファイルを作成します。)

# chkconfig nagios on
# chkconfig --list nagios
# /etc/init.d/nagios start
# /etc/init.d/httpd restart










「http://<各環境のサーバ名>/nagios/」にてアクセスをしてみましょう。

認証画面に「CGI認証パスワード」で作成した「ユーザ名」「パスワード」を入力


















(「サービス稼働状況」をクリック)


















(デフォルトでこれだけのサーバリソース・サービスを監視をします。)













 


●通知テスト

せっかくなので、ちゃんと通知されるかテストをしましょう




例として一番上にある「Current Load」をクリックします。















次の画面右側にあるサービスコマンドの中の「今すぐ通知する」をクリックします。
















次の画面で「コメント」欄に何でもいい「test」とか入力し、発行をクリックします。

指定のアドレスにメールが飛んでくればOK

サーバ管理者っぽくなってきましたね。

これでサーバリソースの管理は大体できると思います。しきい値を超えたらメールで知らせることになります。

 


●追加作業

デフォルトの設定だと、60分毎に通知がされます。平日は仕事など家にいないので、60分後とに携帯へメール通知されても面倒なので、ちょっと変更して、通知は1回のみ実施するように設定を変更します。。

# vi /usr/local/nagios/etc/objects/templates.cfg
(「vi」エディタを使って編集します。)
(「objects」ディレクトリの中にある「templates.cfg」を修正します。)

「SERVICE TEMPLATES」にある「notification_interval」通知間隔を編集します。
デフォルトだと「60」となっていますので、「0」に変更します。



 notification_interval           0

max_check_attempts 3 ⇒ 検知後3回リトライし変化が無ければステータスチェンジ「SOFT」から「HARD」

normal_check_interval 10 ⇒ 通常のチェック間隔。問題なければ、10分間隔でチェック

retry_check_interval 2 ⇒ 前回コマンド失敗時からリトライするまでの間隔フォルト120秒

notification_options w,u,c,r ⇒ 通知の種類「WARNING」「UNKNOWN」「CRITICAL」「RECOVERY」を通知

 


●ステータスについて

ステータス「SOFT」
リトライのことです。ステータスが「SOFT」状態の場合はメール通知はしません。つまり、異常と判断していません。

例えば、リトライ3回でも異常状態であれば本当の異常としてメール通知をする。場合によっては1回でメール通知が必要なこともあるので対象によって回数を変更するとよいでしょう。


ステータス「HARD」
本当の障害として判断し、メール通知を行います。


ステータスについてはブラウザで監視をしている場合は意識する必要はありません。ブラウザの場合は「正常」以外は全て「異常」と判断するからです。

メール通知をする場合は発生時「SOFT」⇒「HARD」回復時「HARD」⇒「SOFT」どちらもメールで通知してくれるので、便利ですね。(メール遅延、メールサーバ障害の場合は通知が遅れるので気をつける必要があります。



追加プラグインは
こちら

 

サーバ運用/管理記事一覧

NET-SNMP

SNMPとはルータやコンピュータ、端末など、ネットワークに接続された通信機器を監視・制御するためのプロトコル。制御の対象となる機器はMIBと呼ばれる管理情報データベース...

Tripwire

Tripwireとはファイルやディレクトリが追加された場合や、削除された場合などを監視するためのツールで、ファイル改ざん検知として定番なので導入します。&nbs...

Denyhosts

DenyHostsとはこれはSSHブルートフォース対策に使います。辞書攻撃とかで、適当なユーザ名・パスワードを使って、侵入をしようとします。1分間に10回以上は...

Fail2ban

Fail2banとはこれも、「denyhosts」同様にログをチェックして、設定以上に認証に失敗していたら失敗したIPアドレスからの接続を拒否するよくあるブルートフ...

munin

muninとは設定が簡単で、システムを監視していろいろな値を取得してグラフ化してくれるものです。ディスク使用量・MySQL・IOstat・トラフィック・プロセス数・VM...

nagios

Nagios(3系 日本語版)とは指定されたホストやサービスを監視し、障害や復旧時にアラートをメール通知するなどの機能があるオープンソースで作られた総合監視ツール。...

nagios-Plugin

Nagios Pluginとは監視ツール「Nagios」はプラグインを追加することで監視する項目を増やすことができます。デフォルトでの監視項目では少し足りない部分が...

nagios-downtime

Nagios downtimeとはデフォルトで、ダウンタイムという機能があります。これはその時間帯を非監視にすることです。監視はするけど通知はしないというところでし...

nagios cheker

Nagios Chekerとは自宅ではFireFoxをブラウザとして使用しています。nagios関連で面白いものを見つけたので、アップしてみました。FireFoxの...

Snort

Snortとはネットワーク型IDS(Intrusion Detection System)です。ネットワークを流れるパケットをキャプチャーし、不審なパケットを検出する機能が...

Clam Antivirus

Clam AntiVirusとはLINUX用のフリーのアンチウイルスソフト ●Clam AntiVirusインストール# yum -y --e...

amavisd-new

amavisd-new送受信されるメールに対してウィルスチェックをするように設定をする。「postfix」「Clam AntiVirus」が設定済みであることが前提...

awstats

AWStatsとはAWStats (awstats6.95 日本語)アクセス解析・ログ解析「awstats」とは、アクセスを解析して、グラフィカルに表示するツールです。...