「Nagios」の導入

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

「Nagios」のインストール

「Nagios」のインストール

「Nagios」はPortsからインストールできるが、WEBインタフェースの日本語化のパッチ当て等をしてからインストールする。
なお、パッチを当てたことによりオリジナルのソースとサイズ等が変わるので、チェックを行わないようにする。

FreeBSD# cd /usr/ports/net-mgmt/nagios <= 作業ディレクトリへ移動
FreeBSD# make fetch-recursive <= ソースのダウンロード
FreeBSD# cd /usr/ports/distfiles <= ソースのダウンロードディレクトリへ移動
FreeBSD# tar xzf nagios-2.10.tar.gz <= 「Nagios」のソースを展開
FreeBSD# cd nagios-2.10 <= 展開したディレクトリに移動
FreeBSD# wget http://osdn.dl.sourceforge.jp/nagios-jp/24999/nagios-2.9-ja.patch.gz
 <= 「Nagios」のWEBインタフェースの日本語パッチをダウンロード
FreeBSD# gzip -dc nagios-2.9-ja.patch.gz | patch -p0 <= パッチの適用
FreeBSD# wget http://osdn.dl.sourceforge.jp/nagios-jp/26147/nagios-doc-2x-ja-20070701.tar.gz
 <= 「Nagios」の日本語マニュアルをダウンロード
FreeBSD# tar xzf nagios-doc-2x-ja-20070701.tar.gz <= 日本語マニュアルの展開
FreeBSD# cp -pr nagios-doc-2x-ja-20070701/* html/docs/ <= マニュアルを日本語のファイルで上書き
FreeBSD# rm -f nagios-2.9-ja.patch.gz <= ダウンロードしたWEBインタフェースのパッチを削除
FreeBSD# rm -rf nagios-doc-2x-ja-20070701* <= ダウンロードした日本語マニュアルを削除
FreeBSD# cd ../
FreeBSD# rm -f nagios-2.10.tar.gz <= 元のソースを削除
FreeBSD# tar czf nagios-2.10.tar.gz nagios-2.10 <= パッチを当てたソースを圧縮
FreeBSD# rm -rf nagios-2.10 <= 展開したソース群の削除
FreeBSD# cd /usr/ports/net-mgmt/nagios <= 作業ディレクトリへ移動
FreeBSD# vi Makefile.local <= 設定ファイルの作成
NO_CHECKSUM=yes <= 追加

FreeBSD# make install clean <= 「Nagios」のインストール

pw: unknown group `nagios'
You need a "nagios" group.
Would you like me to create it [YES]? <= 空Enter

pw: no such user `nagios'
You need a "nagios" user.
Would you like me to create it [YES]? <= 空Enter

サンプル設定ファイルのコピー
FreeBSD# cp /usr/local/etc/nagios/cgi.cfg-sample /usr/local/etc/nagios/cgi.cfg
FreeBSD# cp /usr/local/etc/nagios/commands.cfg-sample /usr/local/etc/nagios/commands.cfg
FreeBSD# cp /usr/local/etc/nagios/localhost.cfg-sample /usr/local/etc/nagios/localhost.cfg
FreeBSD# cp /usr/local/etc/nagios/nagios.cfg-sample /usr/local/etc/nagios/nagios.cfg
FreeBSD# cp /usr/local/etc/nagios/resource.cfg-sample /usr/local/etc/nagios/resource.cfg

プラグインも同時にインストールされる。
また、portupgradeの対象から「Nagios」を外す。

FreeBSD# vi /usr/local/etc/pkgtools.conf <= 設定ファイルの編集
  HOLD_PKGS = [
    'bsdpan-*',
    'net-mgmt/nagios*', <= 追加
  ]
「Nagios」の設定

パスワードの設定

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

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

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

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

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

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

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

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

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

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

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

設定ファイルの確認

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

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

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

「Apache」の設定

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

FreeBSD# vi /usr/local/etc/apache21/httpd.conf <= 設定ファイルの編集
以下を追加
   ScriptAlias /nagios/cgi-bin/ /usr/local/www/nagios/cgi-bin/
   <Directory /usr/local/www/nagios/cgi-bin>
     Options ExecCGI
     order deny,allow
     deny from all
     allow from all
     AuthType Basic
     AuthUserFile /usr/local/etc/nagios/.htpasswd
     AuthName "nagios"
     Require valid-user
   </Directory>

   Alias /nagios/ /usr/local/www/nagios/
   <Directory /usr/local/www/nagios>
     Options None
     Order deny,allow
     deny from all
     allow from all
     AuthType Basic
     AuthUserFile /usr/local/etc/nagios/.htpasswd
     AuthName "nagios"
     Require valid-user
   </Directory>
ここまで

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

FreeBSD# apachectl restart
「Nagios」の起動

「Nagios」の起動

FreeBSD# vi /etc/rc.conf <= 設定ファイルの編集
nagios_enable="YES" <= 追加

FreeBSD# /usr/local/etc/rc.d/nagios start <= 「Nagios」の起動

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

▲ページのトップへ