ホームサポート技術情報OpenMicroServerNagiosの導入と活用方法

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
# 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
# export HOSTTYPE MACHTYPE SHELL
# cd /usr/src/mkdist/libpng
# bmake
# cd ../../lib/libpng
# bmake clean && bmake && bmake install
# /sbin/ldconfig
XFree86
# 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
# 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
# tar zxpvf xpm-3.4k.tar.gz
# cd xpm-3.4k
# xmkmf -a
# make
# make install
# make install.man
# /sbin/ldconfig
gd
# 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
# 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
# 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
# tar zxpvf mrtg-2.14.7.tar.gz
# cd mrtg-2.14.7
# ./configure
# make
# make install
Samba
# tar zxpvf samba-3.0.23d.tar.gz
# mkdir build-samba
# cd build-samba
# ../samba-3.0.23d/configure
# make
# make install
MySQL
# 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
# 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
# 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
# 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
# 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
# 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
# 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: ウェブ公開
ページの先頭へ戻る