「Nagios」の導入

サーバの稼働状態を監視する「Nagios」を導入する。
「Nagios」ではシステムの異常を検知するとメールで報告する機能などを備え、Webインタフェースによるステータス閲覧やレポート出力もできる。
なお、「Apache」の設定は完了済みとする。
また、ここでは「Nagios」のバージョンは2.10とする。
3.0.4の場合はこちらを参照。

「Nagios」のインストール

yumでも「Nagios」をインストールできるが、WEBインタフェース等を日本語化する為、SRPMにパッチを当ててインストールする。

GDライブラリのインストール

「Nagios」を日本語で利用する為にはGDライブラリをEUCコード対応でコンパイルする必要がある。
その為、GDライブラリをEUCコード対応でコンパイルする。

[root@Fedora ~]# yum -y install libpng-devel libjpeg-devel gettext-devel <= GDライブラリのコンパイルに必要なライブラリのインストール
[root@Fedora ~]# mkdir /usr/local/src/gd <= 作業用ディレクトリの作成
[root@Fedora ~]# chmod 777 /usr/local/src/gd <= 作業用ディレクトリのパーミッション変更
[root@Fedora ~]# exit <= 一般ユーザになる
[kaz@Fedora ~]$ cd /usr/local/src/gd <= 作業用ディレクトリへ移動
[kaz@Fedora gd]$ wget http://www.libgd.org/releases/gd-2.0.35.tar.gz <= GDライブラリのソースをダウンロード
[kaz@Fedora gd]$ tar xzf gd-2.0.35.tar.gz <= ダウンロードした日本語マニュアルの展開
[kaz@Fedora gd]$ cd gd-2.0.35 <= 展開したディレクトリに移動
[kaz@Fedora gd-2.0.35]$ export CFLAGS=-DJISX0208
[kaz@Fedora gd-2.0.35]$ ./configure | tee configure.log 2>&1
[kaz@Fedora gd-2.0.35]$ make | tee make.log 2>&1 <= コンパイル
[kaz@Fedora gd-2.0.35]$ su <= スーパーユーザになる
Password: <= パスワードの入力
[root@Fedora gd-2.0.35]# make install | tee make-install.log 2>&1 <= インストール

これでlibgd.so.2.0.0が/usr/local/libにインストールされるが、デフォルトではパスが通っていない為、 「Nagios」インストール後にGDライブラリを利用しているCGIにブラウザでアクセスすると

/usr/local/nagios/sbin/trends.cgi: error while loading shared libraries: libgd.so.2: cannot open shared object file: No such file or directory

といった内容のエラーが出力される。
そこで、以下のようにしてパスを通す。

[root@Fedora ~]# vi /etc/ld.so.conf.d/local-i386.conf <= 設定ファイルの作成
/usr/local/lib <= 追加

[root@Fedora ~]# ldconfig <= 設定ファイルの反映

「Nagios」のインストール

「Nagios」のWEBインタフェースとマニュアルを日本語化してインストールする。

[root@Fedora ~]# wget http://dag.wieers.com/rpm/packages/nagios/nagios-2.10-1.rf.src.rpm
 <= 「Nagios」のソースをダウンロード
[root@Fedora ~]# rpm -ivh nagios-2.10-1.rf.src.rpm <= src.rpmのインストール
[root@Fedora ~]# cd /usr/src/redhat/SOURCES/ <= 作業用ディレクトリへ移動
[root@Fedora SOURCES]# tar xzf nagios-2.10.tar.gz <= ソースの展開
[root@Fedora SOURCES]# cd nagios-2.10 <= 展開したディレクトリへ移動
[root@Fedora nagios-2.10]# wget http://osdn.dl.sourceforge.jp/nagios-jp/24999/nagios-2.9-ja.patch.gz
 <= 「Nagios」のWEBインタフェースの日本語パッチをダウンロード
[root@Fedora nagios-2.10]# gzip -dc nagios-2.9-ja.patch.gz | patch -p0 <= パッチの適用
[root@Fedora nagios-2.10]# rm nagios-2.9-ja.patch.gz <= パッチファイルの削除
[root@Fedora nagios-2.10]# cd ../
[root@Fedora SOURCES]# wget http://osdn.dl.sourceforge.jp/nagios-jp/26147/nagios-doc-2x-ja-20070701.tar.gz
 <= 「Nagios」の日本語マニュアルをダウンロード
[root@Fedora SOURCES]# tar xzf nagios-doc-2x-ja-20070701.tar.gz <= ダウンロードしたファイルの展開
[root@Fedora SOURCES]# cp -pr nagios-doc-2x-ja-20070701/* nagios-2.10/html/docs/ <= マニュアルを日本語で上書き
[root@Fedora SOURCES]# rm -rf nagios-2.10.tar.gz <= 元のソースを削除
[root@Fedora SOURCES]# tar czf nagios-2.10.tar.gz nagios-2.10 <= パッチを当てたソースを圧縮
[root@Fedora SOURCES]# vi /usr/src/redhat/SPECS/nagios.spec <= SPECファイルの編集
Release: 1.rf
↓
Release: 1.ja.rf <= 変更

BuildRequires: gd-devel > 1.8, zlib-devel, libpng-devel, libjpeg-devel
↓
BuildRequires: zlib-devel, libpng-devel, libjpeg-devel <= gd-develの部分を削除

%configure \
        --datadir="%{_datadir}/nagios" \
        --libexecdir="%{_libdir}/nagios/plugins" \
        --localstatedir="%{_localstatedir}/log/nagios" \
        --sbindir="%{_libdir}/nagios/cgi" \
        --sysconfdir="%{_sysconfdir}/nagios" \
        --with-cgiurl="/nagios/cgi-bin" \
        --with-command-user="apache" \
        --with-command-group="apache" \
        --with-gd-lib="%{_libdir}" \
        --with-gd-inc="%{_includedir}" \
        ↓
        --with-gd-lib="/usr/local/lib" \ <= 変更
        --with-gd-inc="/usr/local/include" \ <= 変更
        --with-htmurl="/nagios" \
        --with-init-dir="%{_initrddir}" \
        --with-lockfile="%{_localstatedir}/run/nagios.pid" \
        --with-mail="/bin/mail" \
        --with-nagios-user="nagios" \
        --with-nagios-group="nagios" \

[root@Fedora SOURCES]# rpmbuild -bb --clean /usr/src/redhat/SPECS/nagios.spec <= SRPMパッケージからRPMパッケージを作成
[root@Fedora SOURCES]# rpm -ivh /usr/src/redhat/RPMS/i386/nagios-2.10-1.ja.rf.i386.rpm <= 「Nagios」のインストール

yumのアップデート対象から「Nagios」を外す。

[root@Fedora ~]# vi /etc/yum.conf <= 設定ファイルの編集
exclude=nagios <= 追加

プラグインのインストール

[root@Fedora ~]# yum -y install nagios nagios-plugins-all

[root@Fedora ~]# yum clean packages <= ダウンロードしたパッケージの削除
「Nagios」の設定

パスワードの設定

「Nagios」をWEBブラウザから利用する為、ユーザを登録する。

[root@Fedora ~]# htpasswd -c /etc/nagios/htpasswd.users nagios
New password: <= nagiosのパスワード入力
Re-type new password: <= nagiosのパスワード入力(確認)

「メイン設定ファイル」の設定

[root@Fedora ~]# vi /etc/nagios/nagios.cfg <= 設定ファイルの編集
check_external_commands=0
↓
check_external_commands=1 <= Nagiosのコマンド実行のためのコマンドファイル確認を行う

date_format=us
↓
date_format=iso8601 <= 日付・時刻の表示フォーマットを変更

「CGI設定ファイル」の設定

ここではnagiosユーザに全権限を与えることにする。

[root@Fedora ~]# vi /etc/nagios/cgi.cfg <= 設定ファイルの編集
以下のように権限を変更
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 <= 全ホストに対してコマンドを発行できる認証ユーザ
ここまで

「オブジェクト設定ファイル」の設定

ここでは「localhost.cfg」に全ての設定をまとめて記述している。
本来は監視するサービス等によって細かく記述するが、ここでは最低限の記述のみしている。
また、変更箇所以外も記述している。

[root@Fedora ~]# vi /etc/nagios/localhost.cfg <= 設定ファイルの編集
define contact{

        email                           nagios-admin@localhost
        ↓
        email                           root@localhost <= 通知先メールアドレスを指定
        }

設定ファイルの確認

全ての設定ファイルの記述が終わったら、構文チェックをし、エラーがないことを確認する。

[root@Fedora ~]# nagios -v /etc/nagios/nagios.cfg <= 構文チェック

Total Warnings: 0 <= 0であること
Total Errors:   0 <= 0であること

「Apache」の設定

文字化け対策の為、「Apache」の設定ファイルを修正する。

[root@Fedora ~]# vi /etc/httpd/conf.d/nagios.conf <= 設定ファイルの編集
<Directory "/usr/lib/nagios/cgi">

#  Allow from 127.0.0.1
   AddType "text/html; charset=EUC-JP" .cgi <= 追加
   AuthName "Nagios Access"


<Directory "/usr/share/nagios">

#  Allow from 127.0.0.1
   AddType "text/html; charset=EUC-JP" .html <= 追加
   AuthName "Nagios Access"

「Apache」を再起動し、設定を反映させる。

[root@Fedora ~]# /etc/rc.d/init.d/httpd restart
「Nagios」の起動

「Nagios」の起動

[root@Fedora ~]# /etc/rc.d/init.d/nagios start

「Nagios」の自動起動

Fedoraを起動する際に自動的に「Nagios」が起動するようにする。

[root@Fedora ~]# chkconfig nagios on

http://サーバのIPアドレス/nagios/
とアクセスし、ユーザ名をnagios、パスワードをhtpasswdコマンドで設定したものを入力する。

▲ページのトップへ