「Nagios」の導入

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

「Nagios」のインストール

ユーザの作成

「Nagios」を実行するユーザを作成する。

Solaris# groupadd -g 2100 nagios
Solaris# useradd -u 2100 -g nagios -d /usr/local/nagios -m -s /bin/false nagios

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

「Nagios」に必要なライブラリをインストールする。
必要なライブラリはいくつかあるが、足りない場合、configure時に

*** GD, PNG, and/or JPEG libraries could not be located... *********

といったメッセージが表示されるので必要なものをインストールする。
また、「Nagios」を日本語で利用する為にはGDライブラリをEUCコード対応でコンパイルする必要がある。
ここではGDライブラリのEUCコード対応でのコンパイル方法のみ記述。
なお、make時に

/usr/local/bin/autoconf: /usr/local/bin/autom4te: not found

といった内容のエラーが出力される場合、以下のようにリンクを貼る。

Solaris# ln -s /usr/bin/perl /usr/local/bin/perl
Solaris# ln -s /usr/sfw/bin/gm4 /usr/local/bin/m4

なお、gd-2.0.35ではmake時にエラーが出力される為、gd-2.0.33を利用する。

Solaris# mkdir /usr/local/src/gd <= 作業用ディレクトリの作成
Solaris# chmod 777 /usr/local/src/gd <= 作業用ディレクトリのパーミッション変更
Solaris# exit <= 一般ユーザになる
Solaris% cd /usr/local/src/gd <= 作業用ディレクトリへ移動
Solaris% wget http://www.libgd.org/releases/oldreleases/gd-2.0.33.tar.gz <= GDライブラリのソースをダウンロード
Solaris% gunzip -c gd-2.0.33.tar.gz | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd gd-2.0.33 <= 展開したディレクトリに移動
Solaris% setenv CFLAGS "-DJISX0208"
Solaris% ./configure |& tee configure.log
Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール

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

Solaris# crle -u -l /usr/local/lib

「Nagios」のインストール

Solarisではping等、一部のコマンドが管理者用のパスにしかない為、一時的にパスを追加する。

Solaris# mkdir /usr/local/src/nagios <= 作業用ディレクトリの作成
Solaris# chmod 777 /usr/local/src/nagios <= 作業用ディレクトリのパーミッション変更
Solaris# exit <= 一般ユーザになる
Solaris% cd /usr/local/src/nagios <= 作業用ディレクトリへ移動
Solaris% wget http://jaist.dl.sourceforge.net/sourceforge/nagios/nagios-2.10.tar.gz
 <= 「Nagios」のソースをダウンロード
Solaris% wget http://osdn.dl.sourceforge.jp/nagios-jp/26147/nagios-doc-2x-ja-20070701.tar.gz
 <= 「Nagios」の日本語マニュアルをダウンロード
Solaris% gunzip -c nagios-2.10.tar.gz | tar xf - <= ダウンロードした「Nagios」の展開
Solaris% gunzip -c nagios-doc-2x-ja-20070701.tar.gz | tar xf - <= ダウンロードした日本語マニュアルの展開
Solaris% cd nagios-2.10 <= 展開したディレクトリに移動
Solaris% wget http://osdn.dl.sourceforge.jp/nagios-jp/24999/nagios-2.9-ja.patch.gz
 <= 「Nagios」のWEBインタフェースの日本語パッチをダウンロード
Solaris% gzip -dc nagios-2.9-ja.patch.gz | gpatch -p0 <= パッチの適用
Solaris% cp -pr ../nagios-doc-2x-ja-20070701/* html/docs/ <= マニュアルを日本語のファイルで上書き
Solaris% setenv PATH "$PATH":/usr/sbin:/sbin <= パスの追加
Solaris% ./configure --prefix=/usr/local/nagios \
--with-cgiurl=/nagios/cgi-bin \
--with-htmurl=/nagios \
--with-gd-lib=/usr/local/lib \
--with-gd-inc=/usr/local/include \
--with-nagios-user=nagios \
--with-nagios-group=nagios |& tee configure.log
Solaris% gmake all |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= 「Nagios」のインストール
Solaris# gmake install-init |& tee make-init.log<= 起動スクリプトのインストール
Solaris# gmake install-commandmode |& tee make-commandmode.log <= コマンドのパーミッションを設定
Solaris# gmake install-config |& tee make-config.log <= サンプル設定ファイルのインストール

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

configureは以下のオプションで構わないが、自分は「MySQL」をこちら の方法でソースからインストールした為、
--with-mysql=/usr/local/mysql
とした。
なお、Solarisではping等、一部のコマンドが管理者用のパスにしかない為、一時的にパスを追加する。

Solaris% cd /usr/local/src/nagios <= 作業用ディレクトリへ移動
Solaris% wget http://jaist.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
 <= プラグインのダウンロード
Solaris% gunzip -c nagios-plugins-1.4.11.tar.gz | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd nagios-plugins-1.4.11 <= 展開したディレクトリに移動
Solaris% setenv PATH "$PATH":/usr/sbin:/sbin <= パスの追加
Solaris% ./configure \
--prefix=/usr/local/nagios \
--with-cgiurl=nagios/cgi-bin \
--with-nagios-user=nagios \
--with-nagios-grp=nagios \
--with-mysql=/usr/sfw/mysql |& tee configure.log
Solaris% gmake all |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= プラグインのインストール
「Nagios」の設定

パスワードの設定

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

Solaris# /usr/apache2/bin/htpasswd -c /usr/local/nagios/etc/.htpasswd nagios
New password: <= nagiosのパスワード入力
Re-type new password: <= nagiosのパスワード入力(確認)

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

Solaris# vi /usr/local/nagios/etc/nagios.cfg <= 設定ファイルの編集
check_external_commands=0
↓
check_external_commands=1 <= Nagiosのコマンド実行のためのコマンドファイル確認を行う

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

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

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

Solaris# vi /usr/local/nagios/etc/cgi.cfg <= 設定ファイルの編集
ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$
↓
ping_syntax=/usr/sbin/ping -n -s $HOSTADDRESS$ 56 5 <= 変更

以下のように権限を変更
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」に全ての設定をまとめて記述している。
本来は監視するサービス等によって細かく記述するが、ここでは最低限の記述のみしている。
また、変更箇所以外も記述している。

Solaris# vi /usr/local/nagios/etc/localhost.cfg <= 設定ファイルの編集
define contact{

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

設定ファイルの確認

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

Solaris# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg <= 構文チェック

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

「Apache」の設定

「Apache」からアクセス出来るように設定ファイルを編集する。

Solaris# vi /etc/apache2/httpd.conf <= 設定ファイルの編集
以下を追加
ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/
<Directory /usr/local/nagios/sbin/>
   Options ExecCGI
   order deny,allow
   deny from all
   allow from all
   AddType "text/html; charset=EUC-JP" .cgi
   AuthType Basic
   AuthUserFile /usr/local/nagios/etc/.htpasswd
   AuthName "nagios"
   Require valid-user
</Directory>

Alias /nagios/ /usr/local/nagios/share/
<Directory /usr/local/nagios/share/>
   Options None
   order deny,allow
   deny from all
   allow from all
   AddType "text/html; charset=EUC-JP" .html
   AuthType Basic
   AuthUserFile /usr/local/nagios/etc/.htpasswd
   AuthName "nagios"
   Require valid-user
</Directory>

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

Solaris# svcadm restart svc:/network/http:apache2
「Nagios」の起動

「Nagios」の起動

Solaris# /etc/init.d/nagios start

「Nagios」の自動起動

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

Solaris# ln /etc/init.d/nagios /etc/rc2.d/S99nagios <= ランレベル2で起動する
Solaris# ln /etc/init.d/nagios /etc/rc3.d/S99nagios <= ランレベル3で起動する
Solaris# ln /etc/init.d/nagios /etc/rc0.d/K99nagios <= ランレベル0で停止する

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

▲ページのトップへ