「Nagios」の導入

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

「Nagios」のインストール

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

GDライブラリをjpegとpngを有効にせずインストールしている場合、以降でのソース展開作業時に

 * Your gd has been compiled without jpeg and/or png support.
 * Please re-emerge gd:
 * # USE=jpeg png emerge gd

といったエラーが出力されるので、その場合、有効にして再インストールする。

Gentoo ~ # vi /etc/portage/package.use <= 設定ファイルの編集
media-libs/gd jpeg png <= 追加

Gentoo ~ # emerge gd <= GDライブラリのインストール

「mailx」のインストール

「Nagios」の警告メールは/bin/mailコマンドでの送信を想定しているので、このコマンドが含まれる「mailx」をインストールする。

Gentoo ~ # emerge mailx <= 「mailx」のインストール

「Nagios」のインストール

「Nagios」のWEBインタフェースとマニュアルを日本語化してインストールする。
また、現時点(2008年1月4日)ではemergeでは1.4.1がインストールされるが、ここでは2.10をインストールする。
なお、今後自動でバージョンアップさせないよう、マスクする。

Gentoo ~ # ebuild /usr/portage/net-analyzer/nagios-core/nagios-core-2.10.ebuild fetch <= 「Nagios」のソースをダウンロード
Gentoo ~ # ebuild /usr/portage/net-analyzer/nagios-core/nagios-core-2.10.ebuild unpack <= ダウンロードしたソースの展開
Gentoo ~ # cd /var/tmp/portage/net-analyzer/nagios-core-2.10/work/nagios-2.10 <= 展開したソースのディレクトリへ移動
Gentoo nagios-2.10 # wget http://osdn.dl.sourceforge.jp/nagios-jp/24999/nagios-2.9-ja.patch.gz
 <= 「Nagios」のWEBインタフェースの日本語パッチをダウンロード
Gentoo nagios-2.10 # gzip -dc nagios-2.9-ja.patch.gz | patch -p0 <= パッチの適用
Gentoo nagios-2.10 # wget http://osdn.dl.sourceforge.jp/nagios-jp/26147/nagios-doc-2x-ja-20070701.tar.gz
 <= 「Nagios」の日本語マニュアルをダウンロード
Gentoo nagios-2.10 # tar xzf nagios-doc-2x-ja-20070701.tar.gz <= ダウンロードしたファイルの展開
Gentoo nagios-2.10 # cp -pr nagios-doc-2x-ja-20070701/* html/docs/ <= マニュアルを日本語で上書き
Gentoo nagios-2.10 # rm -f nagios-2.9-ja.patch.gz <= ダウンロードしたWEBインタフェースのパッチを削除
Gentoo nagios-2.10 # rm -rf nagios-doc-2x-ja-20070701* <= ダウンロードした日本語マニュアルを削除
Gentoo nagios-2.10 # ebuild /usr/portage/net-analyzer/nagios-core/nagios-core-2.10.ebuild compile <= コンパイル
Gentoo nagios-2.10 # ebuild /usr/portage/net-analyzer/nagios-core/nagios-core-2.10.ebuild install <= 一時的な場所にインストール
Gentoo nagios-2.10 # ebuild /usr/portage/net-analyzer/nagios-core/nagios-core-2.10.ebuild qmerge <= 現在のファイルシステムにファイルをマージ
Gentoo nagios-2.10 # ebuild /usr/portage/net-analyzer/nagios-core/nagios-core-2.10.ebuild clean <= 一時的なディレクトリの削除

Gentoo ~ # cp /usr/share/doc/nagios-core-2.10/sample-configs/*.bz2 /etc/nagios/ <= サンプル設定ファイルのコピー
Gentoo ~ # bunzip2 /etc/nagios/*.bz2 <= サンプル設定ファイルの展開

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

Gentoo ~ # vi /etc/portage/package.mask <= 設定ファイルの編集
net-analyzer/nagios <= 追加

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

有効にしたいプラグインをUSEフラグで指定する。
例えば、以下のように指定する。

Gentoo ~ # vi /etc/portage/package.use <= 設定ファイルの編集
net-analyzer/nagios-plugins nagios-dns nagios-ntp nagios-ping nagios-ssh snmp <= 有効にしたいものを追加

USEフラグ指定後、プラグインをインストールする。

Gentoo ~ # emerge nagios-plugins
「Nagios」の設定

パスワードの設定

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

Gentoo ~ # htpasswd2 /etc/apache2/.htpasswd nagios
New password: <= nagiosのパスワード入力
Re-type new password: <= nagiosのパスワード入力(確認)

「Nagios」のWEBページに.htaccessファイルを作成する。
ここでは通常のページとCGIのページを同じアクセス設定にしている為、.htaccessファイルをコピーしている。

Gentoo ~ # vi /usr/nagios/sbin/.htaccess <= .htaccessの作成
AuthUserFile /etc/apache2/.htpasswd <= .htpasswdファイルの場所を指定
AuthGroupFile /dev/null <= グループファイルは指定しない
AuthName "nagios" <= 認証を行う際に表示されるタイトルを指定(日本語は文字化けする可能性があるので、使わないほうが無難)
AuthType Basic <= Basic認証
Require user nagios <= nagiosユーザのみ認証できるようにする

Gentoo ~ # cp /usr/nagios/sbin/.htaccess /usr/nagios/share/ <= .htaccessのコピー

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

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

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

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

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

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

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

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

設定ファイルの確認

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

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

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

「Apache」の設定

ユーザ認証の設定を有効にする為、「Apache」の起動オプションを変更する。

Gentoo ~ # vi /etc/conf.d/apache2 <= 設定ファイルの編集
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D SUEXEC"
↓
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D SUEXEC -D NAGIOS" <= -D NAGIOS を追加

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

Gentoo ~ # /etc/init.d/apache2 restart
「Nagios」の起動

オーナ、パーミッションの変更

「Nagios」起動時にロックファイルの作成、設定ファイルの参照が出来るよう、ディレクトリのオーナとパーミッションを変更する。

Gentoo ~ # chown nagios /var/nagios <= ロックファイル作成ディレクトリ
Gentoo ~ # chmod 755 /etc/nagios <= 設定ファイル格納ディレクトリ

「Nagios」の起動

Gentoo ~ # /etc/init.d/nagios start

「Nagios」の自動起動

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

Gentoo ~ # rc-update add nagios default

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

▲ページのトップへ