Linux版のNagios 3.5をCentOS 6にソースからインストールする手順の完全版です。完全版ということだけあって、Webインタフェース(ブラウザからの操作)に対応するまでを記載しています。
Webインタフェースというのは下図のようなのです。
とりあえずこの方法であればNagiosのベースまでをインストールすることができます。(PNPのインストールは別記事でご紹介します)
目次
前提条件
いつもながらの前提条件ですが。
既にApacheはインストールされているものとします。 今回の手順ではApacheはソースから /usr/local/apache2 にインストールされているものとしますので、必要に応じて記載内容を置き換えてください。
Nagios Coreのインストール
では早速Nagiosのコア(基本機能)をインストールしていきます。
インストールの準備をする
まずはNagios用のユーザを作成してインストールディレクトリを作成します。
# useradd nagios # mkdir /usr/local/nagios
続いてwgetコマンドでNagiosのソースをダウンロードします。ダウンロードが完了したら解凍までしておきます。
# cd /usr/local/src # wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.5.1.tar.gz # tar -xzf nagios-3.5.1.tar.gz
日本語文字化け対応の為にソース・ファイルを修正する
さて次はインストール・・・・といきたいところですが、その前に各画面のソースを少し修正しておいた方が実はよかったりします。
というのもそのまま configure と make をしてインストールした場合、日本語の結果ステータスが文字化けして表示されることになってしまったりするからです。(例えばhttpのステータスなど)
まずはステータス結果画面(status.cgi)の修正を試しにしてみます。
# cd nagios/cgi # cp -p status.c status.c.org # vi status.c
日本語の指定を入れます。
printf("<html>\n"); ↓ ja を追加 printf("<html lang=\"ja\">\n");
headタグの下に下記を追記します。
printf("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n");
html_encode という処理で文字のエンコーディングを行っているのですが、こいつのせいで日本語が表示できなくなってしまっています。
というわけで下記のように修正します。(html_encode を削除する)
printf("%s ",(temp_status->plugin_output==NULL)?"":html_encode(temp_status->plugin_output,TRUE)); ↓ 修正 printf("%s ",(temp_status->plugin_output==NULL)?"":temp_status->plugin_output);
修正は以上です。
これと同じ修正を下記のソースにも行っておいた方がいろいろと便利です。(別に日本語ステータスの文字化けとか気にしないのであれば必要ありません)
- showlog.c
- extinfo.c
- history.c
インストールする
ようやく準備が整いましたのでインストールを行います。configファイルのインストールまで一気に行ってます。
# cd ../ # ./configure --prefix=/usr/local/nagios # make all # make fullinstall # make install-config # make install-commandmode
Nagios Pluginをインストールする
これまででCoreのインストールが完了しました。
引き続き今度はプラグイン各種(Nagios Plugin)をインストールします。
流れはCoreと同じくwgetコマンドでダウンロドしてきて make install です。
# cd /usr/local/src # wget http://www.nagios-plugins.org/download/nagios-plugins-2.0.1.tar.gz # tar -xzf nagios-plugins-2.0.1.tar.gz # cd nagios-plugins-2.0.1 # ./configure --prefix=/usr/local/nagios # make all # make install
正常にプラグインがインストールされているかを確認してみます。
# ls /usr/local/nagios/libexec/
正常にファイルの一覧が表示されればプラグインのインストールも完了です。
Nagiosの初期設定
インストールが完了したので初期設定を行っておきます。
# cp /usr/local/nagios/etc/nagios.cfg /usr/local/nagios/etc/nagios.cfg.org # vi /usr/local/nagios/etc/nagios.cfg
下記の日本語設定の記載を追記します。
date_format=iso8601
続いてCGI設定を変更します。
# cp -p /usr/local/nagios/etc/cgi.cfg /usr/local/nagios/etc/cgi.cfg.org # vi /usr/local/nagios/etc/cgi.cfg
下記の値を変更します。
use_authentication=1 ↓ use_authentication=0
これでNagiosの初期設定が完了しました。
Apacheの設定変更
Nagiosの初期設定まで完了したら、Nagiosのディレクトリが見えるようにApacheの設定を変更します。
# cp /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.nagiosUpdate # vi /usr/local/apache2/conf/httpd.conf
下記の設定を追記します。
# --- # Add (yyyy-mm-dd) Nagios3.5.1 Install # --- 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"> Options None AllowOverride AuthConfig Order allow,deny Allow from all </Directory> # ---Add (Nagios Install) End---
以上で設定が完了しました。
Nagiosを起動
というわけでNagiosを起動してみましょう。
まずはApacheの設定を変更したのでApacheを再起動。
# /etc/rc.d/init.d/httpd2 restart
続いてNagiosを起動します。
# /etc/rc.d/init.d/nagios start
実際にNagiosの画面( http://xxx.xxx.xxx.xxx/nagios/ )にブラウザからアクセスして正常に表示されていることを確認してみてください。
Webインタフェースの設定をする
無事にNagiosが問題なく稼働して閲覧できる状況になっていたら今度はWebインタフェースの設定をして、Webからいろいろと操作ができるようにします。
# cd /usr/local/nagios/etc/ # cp cgi.cfg cgi.cfg.WebControl
use_authentication という設定をインストール時に 0 にしているのでそれを 1 に戻します。
use_authentication=0 ↓ use_authentication=1
また下記を追記します。
default_user_name=nagiosadmin
続いてNagiosの起動スクリプトを修正します。
# vi /etc/rc.d/init.d/nagios
/usr/local/nagios/var/rw/nagios.cmd というファイルにOtherの実行権限を与える必要があるのですが、既存の起動スクリプトのままだと再起動する度に権限が初期化されてしまいますのでその設定を記述しておかなければいけません。
start の 『echo ” done.”』の上に下記を追加します。
chmod o+w $NagiosCommandFile
これでWebインタフェースの設定が完了です。
というわけで以上がNagiosのインストールからWebインタフェースの設定までの流れでした。