LAN内のマシンを監視してみる。
以下のようにパッケージをインストールする。関連してたくさんのパッケージもインストールされる。apache2-mpm-workerを使っている場合、apache2-mpm-preforkに置き換えられる。
# apt-get install nagios3 nagios3-doc nagios-nrpe-plugin
インストール中の質問で、nagiosadminのパスワードを聞かれる。ユーザ名が気に入らない場合は、ここでの設定はせず、後から自分で作成することもできる。
インストール直後は、ドキュメントのリンクがうまく動作しないので、以下のように書き換える。
- DirectoryIndex index.php + DirectoryIndex index.php index.html
以下のURLへ接続すると、管理画面が表示される。
http://<Nagiosをインストールしたマシン名>/nagios3/
監視対象を追加するときは、/etc/nagios3/conf.d/localhost_nagios2.cfgをコピーして使う。外部から確認できる項目(HTTP,SSHなど)だけなら、ホスト名とIPアドレスを書き換えて、/etc/nagios3/conf.d/hostgroups_nagios2.cfgも編集すると監視できる。
ディスクステータスなどの内部情報は、監視対象にエージェントをインストールする必要がある。
# apt-get install nagios-nrpe-server
その後、設定ファイルを編集する。ここでは、監視サーバの指定、監視コマンドの指定を行う。
allowed_hosts=<監視サーバのIPアドレス> command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e
# check_command check_all_disks!20%!10% check_command check_nrpe_1arg!check_all_disks
VMware ESXiの監視をするスクリプトが公開されているので、それを使用する。
# apt-get install python-pywbem # mkdir /opt/nagios # cd /opt/nagios # wget http://www.claudiokuenzler.com/nagios-plugins/check_esxi_hardware.py
check_command check_esxi_hardware!root!/opt/nagios/.vmwarepasswd!dellパスワードはファイルに保存する。nagiosユーザ、またはnagiosグループの読み取り権限の見つけておけば良い。
define command{ command_name check_esxi_hardware command_line /opt/nagios/check_esxi_hardware.py -H $HOSTADDRESS$ -U $ARG1$ -P file:$ARG2$ -V $ARG3$ $ARG4$ }
チェックパラメータを監視サーバから受け取るに方法もあるが、受け取った引数をつけてそのまま実行されるので、セキュリティリスクがある。
#dont_blame_nrpe=0 dont_blame_nrpe=1 command[check_procs]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
# check_command check_procs!250!400 check_command check_nrpe!check_procs!250!400
Apacheのモジュールをデフォルトから減らしていると、インストールや起動に失敗する。少なくとも、以下のモジュールは必要だった。
監視対象によっては、SSLに対応していないことがある。この場合、以下のようなエラーがログファイルに書かれる。
Jun 5 16:35:20 obs600 nrpe[4704]: Could not read request from client, bailing out...
対処方法として、以下のように、"-n"オプションを追加する。
command_line /usr/lib/nagios/plugins/check_nrpe -n -H $HOSTADDRESS$ -c $ARG1$