Nagiosの導入と活用方法
はじめに
OpenMicroServer の 活用例 「システム監視用機器」の実例として、オープンソースの監視ソフトウェアである Nagios の導入方法についてご案内いたします。
また、Nagiosの持つ多様な機能のうち、弊社にてテスト済みの内容を随時更新致します。
Nagios について
Nagiosとは、GPLライセンスに基づいて開発が行われている、オープンソースの監視ソフトウェアです。
ネットワーク上に設置されたサーバや各種ネットワーク機器の死活・リソース等の監視機能、障害発生時の通知機能を持ちます。監視対象の稼働状況は、専用のWEBインタフェースから確認ができ、いつでも状況を確認することが出来ます。
Official WEB Site: http://nagios.org/
用意する機器
- OpenMicroServer 本体
- プログラム格納用ストレージ およそ 200MB (OS・ログ保存を含めて1GB以上を推奨)
専用オプション: OMS 専用コンパクトフラッシュ 1GB
注意
プログラムバイナリを利用せず、ご自身でプログラムの構築を行う場合は、開発環境をインストールする必要があります。
開発環境のインストールは、4GB 以上の CF/USB ストレージが必要となります。
開発環境のインストールは、SSD/Linux - sysinst(8)の使い方を参照してください。
導入方法
必要な関連ライブラリ・プログラム一覧
- Apache
- libpng
- XFree86
- jpeg
- xpm
- gd
- fping
- net-snmp
- MRTG
- Samba
- MySQL
- PostgreSQL
- radiusclient
- Cyrus-SASL
- OpenLDAP
※ 利用するプラグインよって、ライブラリの追加が必要な場合があります。
コンパイル済みバイナリを使用する場合
次の節で、ソース・ファイルからの導入方法を説明しますが、コンパイル済みバイナリをお使いになりたい場合はここからダウンロードしてください。インストールするには
# tar zxpvf <ファイル名> -C /
を実行します。詳しくはREADMEをお読みください。また、インストール後にコマンドをいくつか実行する必要のある場合があります(例えば /sbin/ldconfig を実行する)ので、次の節の相当する部分もお読みください。
Nagios本体/関連ライブラリ・プログラムの構築方法
注意
プログラムバイナリを利用せず、ご自身でプログラムの構築を行う場合は、開発環境をインストールする必要があります。
開発環境のインストールは、4GB 以上の CF/USB ストレージが必要となります。
開発環境のインストールは、SSD/Linux - sysinst(8)の使い方を参照してください。
利用するソースファイル、及びパッチファイルは、以下URLからダウンロードが可能です。
構築順序が重要です。以下の順に構築を実施する必要があります。
Apache
- バージョン:2.2.3
# tar jxpvf httpd-2.2.3.tar.bz2 # mkdir build-httpd # cd build-httpd # ../httpd-2.2.3/configure --enable-so --enable-modules=all --enable-mods-shared=all --enable-ssl # make # make install
/usr/local/apache2/conf/httpd.conf へ追記
ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/ <Directory "/usr/local/nagios/sbin/"> AllowOverride AuthConfig Options ExecCGI Order allow,deny Allow from all </Directory> Alias /nagios/ /usr/local/nagios/share/ <Directory "/usr/local/nagios/share"> AllowOverride AuthConfig Options None Order allow,deny Allow from all </Directory>
libpng
- バージョン:1.2.16
# export HOSTTYPE MACHTYPE SHELL # cd /usr/src/mkdist/libpng # bmake # cd ../../lib/libpng # bmake clean && bmake && bmake install # /sbin/ldconfig
XFree86
- バージョン:4.6.0
# tar zxpvf XFree86-4.6.0-src-1.tgz # tar zxpvf XFree86-4.6.0-src-2.tgz # tar zxpvf XFree86-4.6.0-src-3.tgz # tar zxpvf XFree86-4.6.0-src-4.tgz # tar zxpvf XFree86-4.6.0-src-5.tgz # tar zxpvf XFree86-4.6.0-src-6.tgz # tar zxpvf XFree86-4.6.0-src-7.tgz # patch -p0 < fix-01 # patch -p0 < XFree86-4.6.0-linux-2.6.16-input_h.patch # cd xc/config/util # make -f Makefile.ini lndir # cd ../../.. # mkdir build-xfree86 # cd build-xfree86 # ../xc/config/util/lndir ../xc # make World # make install # make install.man # /sbin/ldconfig
jpeg
- バージョン:6b
# tar zxpvf jpegsrc.v6b.tar.gz # mkdir build-jpeg # cd build-jpeg # ../jpeg-6b/configure --enable-shared --enable-static # make # make test # make install # /sbin/ldconfig
xpm
- バージョン:3.4k
# tar zxpvf xpm-3.4k.tar.gz # cd xpm-3.4k # xmkmf -a # make # make install # make install.man # /sbin/ldconfig
gd
- バージョン:2.0.33
# tar zxpvf gd-2.0.33.tar.gz # mkdir build-gd # cd build-gd # ../gd-2.0.33/configure # make # make install # /sbin/ldconfig
fping
- バージョン:2.4b2
# tar zxpvf fping-2.4b2_to.tar.gz # mkdir build-fping # cd build-fping # ../fping-2.4b2_to/configure # make # make install # chmod u+s /usr/local/sbin/fping
net-snmp
- バージョン:5.3.0.1
# tar zxpvf net-snmp-5.3.0.1.tar.gz # mkdir build-net-snmp # cd build-net-snmp # ../net-snmp-5.3.0.1/configure --with-defaults # make # make install
MRTG
- バージョン: 2.14.7
- 配布元: http://www.mrtg.org/
# tar zxpvf mrtg-2.14.7.tar.gz # cd mrtg-2.14.7 # ./configure # make # make install
Samba
- バージョン: 3.0.23d
# tar zxpvf samba-3.0.23d.tar.gz # mkdir build-samba # cd build-samba # ../samba-3.0.23d/configure # make # make install
MySQL
- バージョン: 5.0.27
# groupadd mysql # useradd -d /usr/local/mysql -g mysql mysql # tar zxpvf mysql-5.0.27.tar.gz # mkdir build-mysql # cd build-mysql # ../mysql-5.0.27/configure --with-mysqld-user=mysql --with-charset=ujis --with-extra-charsets=all # make # make install # cd /usr/local/mysql # ./bin/mysql_install_db --user=mysql # chown -R mysql var # chgrp -R mysql .
PostgreSQL
- バージョン: 8.1.5
# tar zxpvf postgresql-8.1.5.tar.gz # mkdir build-postgresql # cd build-postgresql # ../postgresql-8.1.5/configure # make # make check # make install
/etc/ld.so.conf へ追記
/usr/local/pgsql/lib
# /sbin/ldconfig
radiusclient
- バージョン: 0.3.2
# tar zxpvf radiusclient-0.3.2.tar.gz # mkdir build-radiusclient # cd build-radiusclient # ../radiusclient/configure --enable-shadow # make # make install # /sbin/ldconfig
cyrus-sasl
- バージョン: 2.1.22
# tar zxpvf cyrus-sasl-2.1.22.tar.gz # mkdir build-cyrus-sasl # cd build-cyrus-sasl # ../cyrus-sasl-2.1.22/configure --build=mipsel-ssd-linux-gnu # make # make install # /sbin/ldconfig
openldap
- バージョン: 2.3.30
# tar zxpvf openldap-2.3.30.tgz # mkdir build-openldap # cd build-openldap # ../openldap-2.3.30/configure # make depend # make # make test # make install # /sbin/ldconfig
nagios
- バージョン: 2.11, 2.5
# groupadd nagios # useradd -d /usr/local/nagios -g nagios nagios # mkdir /usr/local/nagios # chown nagios.nagios /usr/local/nagios # usermod -G nagios daemon # usermod -G nagios nagios # tar zxpvf nagios-2.x.tar.gz # cd nagios-2.x # ./configure # make # make install # make install-init # make install-commandmode
次のコマンドを実行すると、ディレクトリ /usr/local/nagios/etc/ 下にファイルがすでに存在する場合、それらのファイルを上書きします。バックアップをしてください。
# make install-config
ファイル .htaccess をディレクトリ /usr/local/nagios/share/ と /usr/local/nagios/sbin/ に以下の内容で作成します。
AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users require valid-user
ユーザ nagios を作成します。
# /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagios
これにより http://<Nagios サーバ名>/nagios/ にブラウザで接続すると Basic 認証のダイアログ・ボックスが開きます。
nagios-plugins
- バージョン:1.4.3
# tar zxpvf nagios-plugins-1.4.3.tar.gz # cd nagios-plugins-1.4.3 # export PATH=$PATH:/usr/local/samba/bin # ./configure --with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql # make # make install
Nagios の設定
Nagios の設定については こちら をご覧ください。
OpenMicroServer に必要な設定
自動起動の設定
/etc/rc.local へ追記
/usr/local/apache2/bin/apachectl -k start /etc/rc.d/init.d/nagios start
モードの変更
実行コマンド
# chmod u+s /sbin/ping # chmod 1777 /var/spool/mqueue
テスト結果
Nagios では、各種監視機能がプラグイン化されております。OpenMicroServer にて、各機能が問題なく利用できることをテストし、結果を公開いたします。
結果 | テスト項目 | 使用したプラグイン | 備考 |
---|---|---|---|
○ | dig コマンドを利用して、DNS の名前解決をチェックする | check_dig | |
○ | fping コマンドを使用した PING 監視 | check_fping | |
○ | WEB サーバの監視 | check_http | |
○ | PING による死活監視 | check_ping | |
○ | 複数サーバに対する Ping での監視 | check_icmp | check_icmp のモードを o+x に変更する |
○ | SMTP サーバの監視 | check_smtp | |
○ | SNMP サーバの監視 | check_snmp | |
○ | SSH サーバの監視 | check_ssh | |
○ | 任意の TCP ポートの監視 | check_tcp | |
○ | 任意の UDP ポートの監視 | check_udp | |
× | MRTG のログファイルを用いたトラフィックの監視 | check_mtrg | Status が UNKNOWN となってしまう |
× | MRTG のログファイルを用いたトラフィックの監視 | check_mrtgtraf | Status が UNKNOWN となってしまう |
○ | MySQL サーバの監視 | check_mysql | |
○ | MySQL サーバへの Query の実行による監視 | check_mysql_query | |
○ | PostgreSQL サーバの監視 | check_pgsql | |
○ | SMB を介したディスク使用率の監視 | check_disk_smb | |
○ | NTPサーバの監視、NTP サーバとの時刻のズレの監視 | check_ntp | |
○ | DHCPサーバの監視 | check_dhcp | check_dhcp のモードを o+x に変更する |
○ | Windows OS のリソース監視 | check_nt | |
○ | SNMP の ipOpenStatus を使用した、ネットワークインタフェースの状態監視 | check_ifoperstatus | |
○ | SNMP を使用した、全てのネットワークインタフェースの状態監視 | check_ifstatus | |
○ | 特定の RPC サービスの監視 | check_rpc | |
○ | LDAP サーバの監視 | check_ldap | |
○ | RADIUS サーバの監視 | check_radius | |
○ | メール配送キューの監視 | check_mailq | |
○ | SSH を利用してリモートのプラグインを実行する | check_by_ssh | |
△ | ディスク使用率の監視 | check_disk | オプション -p が指定できない |
○ | サーバのロードアベレージの監視 | check_load | |
○ | Nagios デーモンの監視 | check_nagios | |
○ | プロセスの監視 (ゾンビプロセス、デッドプロセス、プロセス数) | check_procps | |
○ | SWAP メモリの監視 | check_swap | |
○ | ログインユーザの監視 | check_users | |
○ | ファイルサイズと変更日時の監視 | check_file_age | |
○ | ログへの指定文字列の出現を監視 | check_log |
○: 正常に動作する △: 一部制限あり ×: 正常に動作しない
参考文献
- Nagios 2.0 オープンソースではじめるシステム & ネットワーク監視、佐藤省吾、2006 年、毎日コミュニケーションズ
変更履歴
- 2008/03/19: Nagios のバージョン 2.11 を追加。
- 2007/01/09: コンパイル済みバイナリの提供開始。
- 2006/12/20: 「Nagios の設定」へのリンクを追加。
- 2006/12/14: 必要な関連ライブラリ・プログラム一覧に radiusclient, Cyrus-SASL, OpenLDAP を追加。テスト結果 (check_ldap から check_log) を更新。
- 2006/12/05: 必要な関連ライブラリ・プログラム一覧に MRTG, Samba, MySQL, PostgreSQL を追加。テスト結果 (check_mrtg から check_rpc) を更新。
- 2006/11/28: ウェブ公開