ネットワーク監視ソフトNagios3をインストール
ブログにも書いたが、ホームページを公開して以来我が家の光回線であるSTnetのPikaraから割り振られているIPアドレスがちょくちょく変化し、結果としてダイナミックDNSとの連係が一時的に切れる現象が出ている。
これではアクセスしようという気にならないのではと思い、一度どの位切れているかを定量的に把握したく、かってメルコのリンクステーションをハックして作っていたサーバーで運用していたNagiosを使ってみることとした。
Nagiosは定期的(デフォルト5分間隔)にpingを打ってくれてダイナミックDNSが上手く稼働しているかどうかを検知し、また統計的な集約も出来るのでうってつけである。
かって実施したインストールはソースからコンパイルしたが、今回は他のアプリケーションと同じでapt-get install でインストール出来るので簡単である。Nagiosには他に監視状況を表示させるためにApach2が必要となるが、既にインストールされている場合はNagios3だけでOKである。
sudo apt-get install nagios3
sudo apt-get install apache2
nagios3はインストール途中でnagiosadminのパスワードを聞いてくるので適当に入力する。これは/etc/nagios3/htpasswd.usersに保存される。
インストール後は各アプリケーションの設定を行う。
その前に監視の仕組みは
Nagiosは各ホストとhttpdなどのサービスのステータスを収集し、Apacheでそれを表示するというのが監視の流れにである。
Nagiosの設定ファイル等については
/etc/nagios3
以下にある。
このうち主となるconfigファイルは
/etc/nagios3/nagios.cfg
で、ここから他のconfigをファイル指定またはフォルダ指定で追加している構造となっている。
フォルダで指定した場合、読み込むのは末尾.cfgのファイルなので新規に作成したconfigファイルを読み込ませる際には忘れぬよう注意が必要である。
Nagiosをインストールした段階でNagiosサーバ自身=localhostへの監視は自動で始まってる。
それに使用されているconfigファイルは
/etc/nagios3/conf.d/localhost_nagios2.cfg である。
〇Nagios3
Nagiosの監視は対象ホストとそのホストで実施しているサービスである。
監視したいホストとサービスを拡張子をcfgとしたファイルで指定する。
デフォルトのnagios3が動いているホストの監視指定は以下の通りである。つまり、/etc/nagios3/conf.d/以下に拡張子cfgのファイルを置けば監視してくれる。
pi@wp-test:~ $ cat /etc/nagios3/conf.d/localhost_nagios2.cfg
# A simple configuration file for monitoring the local host
# This can serve as an example for configuring other servers;
# Custom services specific to this host are added here, but services
# defined in nagios2-common_services.cfg may also apply.
#
ホスト登録
define host{
use generic-host ; Name of host template to use
host_name localhost
alias localhost
address 127.0.0.1
}
# Define a service to check the disk space of the root partition
# on the local machine. Warning if < 20% free, critical if
# < 10% free space on partition.
ホストに関するサービスの監視を登録
define service{
use generic-service ; Name of service template to use
host_name localhost
service_description Disk Space
check_command check_all_disks!20%!10%
}
# Define a service to check the number of currently logged in
# users on the local machine. Warning if > 20 users, critical
# if > 50 users.
define service{
use generic-service ; Name of service template to use
host_name localhost
service_description Current Users
check_command check_users!20!50
parents localhost ⇒ 上位hostを指定
}
次に、statusmapで表示するアイコンを/etc/nagios3/conf.d/extinfo_nagios2.cfgで登録する。
ホスト表示に使うアイコンはサイズ40x40のgif,jpg,pngとユーティリティを使って作成するgd2タイプの画像を/usr/share/nagios3/htdocs/images/logos/以下に配置する。指定方法は以下の通りであり、設定した全てのホストに対応して指定しないとエラーとなる。
ここでGD2画像の作成方法は
$ sudo aptitude install libgd-tools でツールをインストールし、
$ pngtogd2 image.png image.gd2 1 1 で変換する。
アイコンの登録は以下の通り、/etc/nagios3//extinfo_nagios2.cfgで行う。
pi@wp-test:~ $ cat /etc/nagios3/conf.d/extinfo_nagios2.cfg
##
## Extended Host and Service Information
##
define hostextinfo{
hostgroup_name debian-servers
notes Debian GNU/Linux servers
# notes_url http://webserver.localhost.localdomain/hostinfo.pl?host=netware1
icon_image debian.png
icon_image_alt Debian GNU/Linux
vrml_image debian.png
statusmap_image debian.gd2
## 2d_coords 200,200
}
define hostextinfo{
host_name blogserver
notes BlogServer
icon_image raspi.png
icon_image_alt Raspi
vrml_image raspi.png
statusmap_image raspi.gd2
## 2d_coords 450,50
}
〇apache2
/etc/apache2/apache2.confの最後に以下の内容を追記する。
Alias /nagios3/stylesheets /etc/nagios3/stylesheets
Alias /nagios3 /usr/share/nagios3/htdocs
Options FollowSymLinks
DirectoryIndex index.php index.html
AllowOverride AuthConfig
Order Allow,Deny
Allow From All
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios3/htpasswd.users
require valid-user
Options +ExecCGI
これでapache2とnagios3を再起動すると監視が始まる。
以下はステータスマップの様子。