2009 10月 25

NagiosQLとは、Nagiosの監視設定をWebインターフェースから簡単に行えるアドオンだ。
今回は、このNagiosの監視設定を行うためのWebインターフェースであるNagiosQLのインストール方法を紹介する。
Nagiosの監視設定を行うためのアドオンは、以前からいろいろあるが、今最も注目度が高いものはNagiosQLだろう。
他のアドオンでは、Nagios(3.x)まで対応していなかったり、Nagiosの設定ファイルが書けないと使えなかったりするものが多い。
また、NagiosQL(2.x)ではNagiosのテンプレートファイルへの対応が不十分だったが、NagiosQL(3.x)ではこの対応も充実している。
このブログを書いている現在時点でのNagiosQLの最新版は3.0.3 だ。
以前、インストールしたNagios(3.1.0)にインストールを行う。
サーバOSは、CentOS 5.3 である。
 



 

ダウンロード

今回必要なものは以下の通りだ。
 
●NagiosQL : nagiosql303.tar.gz (NagiosQLサイトのダウンロードページ
 
ダウンロードしたtarballは、/usr/local/src に置くものとする。
 

インストールマニュアル

NagiosQLのインストールマニュアルは、NagiosQLのtarball(nagiosql303.tar.gz)に含まれている。
tarballを解凍すると以下にインストールマニュアルがある。
 
./nagiosql3/install/doc/INSTALLATION_enGB.txt
 
NagiosQLサイトにもドキュメントページがある。
また、全ての作業は特に断りがない限りrootアカウントで行うものとする。
 

システム要求

NagiosQLのインストールマニュアルによれば、以下の通り。
 
1. Webserver e.g. Apache 1.x or above
2. PHP 4.3 or above
3. MySQL 4.1 or above
4. Nagios 2 or above
5. PEAR Module: HTML_Template_IT 1.1 or above
6. PHP Extension: gettext
7. PHP Extension: mysql
8. PHP Extension: ftp
9. Javascript enabled at your Webbrowser
 
1, 3, 4 は、これまでにすでにインストール済みだ。
6, 8 は、PHPをインストールすればデフォルトでインストールされる。
9 は、クライアントPCのブラウザ要件なのでインストールには関係ない。
ここでは、その他のものをインストールしておく。
 

# yum install php php-pear php-mysql
# pear install HTML_Template_IT

 

tarballの解凍とディレクトリ設定

NagiosQLをドキュメントルート下に解凍する。
今回はCentOSのApacheのドキュメントルート/var/www/htmlに解凍する。
そして、ディレクトリのオーナー権限をApacheの実行アカウントであるapacheにする。
 

# cd /var/www/html
# tar xvfz /usr/local/src/nagiosql303.tar.gz
# chown apache.apache -R nagiosql3

 
NagiosQLのインストールマニュアルでは、/etc/nagiosql 下にNagiosの監視設定ファイルを置くようになっているが、ここではNagios標準の設定ファイルディレクトリである /usr/local/nagios/etc 下に置くようにする。
また、NagiosQL(3.x)ではインポートファイル用のディレクトリも設定できるようになっている。
 
今回のディレクトリ構成は、以下の通り。
 

/usr/local/nagios/etc Nagios設定ファイルディレクトリ
/usr/local/nagios/etc/objects Nagiosオブジェクト設定ファイルディレクトリ
/usr/local/nagios/etc/objects/hosts ホスト監視設定ファイルディレクトリ
/usr/local/nagios/etc/objects/services サービス監視設定ファイルディレクトリ
/usr/local/nagios/etc/objects/backup/hosts バックアップディレクトリ(ホスト監視設定ファイル用)
/usr/local/nagios/etc/objects/backup/services バックアップディレクトリ(サービス監視設定ファイル用)
/usr/local/nagios/etc/import インポートファイル用ディレクトリ

 
上記のディレクトリ構成に合わせて必要なディレクトリを作成する。
 

# cd /usr/local/nagios/etc/objects
# mkdir hosts
# mkdir services
# mkdir -p backup/hosts
# mkdir -p backup/services
# mkdir /usr/local/nagios/etc/import

 
また、今回のユーザ権限は以下のようになっている。
 
●Apache
 user: apache
 group:apache
●Nagios
 user: nagios
 group:nagios
 
これらをふまえて以下のように権限の設定を行う。
 

# usermod -G nagios apache
# chmod 6755 /usr/local/nagios/etc
# chown apache.nagios /usr/local/nagios/etc
# chmod 6755 /usr/local/nagios/etc/objects
# chown apache.nagios /usr/local/nagios/etc/objects
# chmod 6755 /usr/local/nagios/etc/objects/hosts
# chown apache.nagios /usr/local/nagios/etc/objects/hosts
# chmod 6755 /usr/local/nagios/etc/objects/services
# chown apache.nagios /usr/local/nagios/etc/objects/services
# chmod 6755 /usr/local/nagios/etc/objects/backup
# chown apache.nagios /usr/local/nagios/etc/objects/backup
# chmod 6755 /usr/local/nagios/etc/objects/backup/hosts
# chown apache.nagios /usr/local/nagios/etc/objects/backup/hosts
# chmod 6755 /usr/local/nagios/etc/objects/backup/services
# chown apache.nagios /usr/local/nagios/etc/objects/backup/services
# chmod 664 /usr/local/nagios/etc/*.cfg
# chown apache.nagios /usr/local/nagios/etc/*.cfg
# chown nagios.apache /usr/local/nagios/bin/nagios
# chmod 750 /usr/local/nagios/bin/nagios
# chown nagios.apache /usr/local/nagios/var/rw/nagios.cmd
# chmod 660 /usr/local/nagios/var/rw/nagios.cmd

 

インストール

NagiosQLのinstallディレクトリにENABLE_INSTALLERという空っぽのファイルを作成する。
 

# cd /var/www/html/nagiosql3/install
# touch ENABLE_INSTALLER

 
次にブラウザでNagiosQLのインストールページ(http://サイトのURL/nagiosql3/install/index.php)にアクセスし、”Setup Language”で好きな言語を選択し、”Start new installation”をクリックする。
言語は日本語がないため、Englishにしておけばいいだろう。
 
図1:NagiosQL3インストール画面1
図1:NagiosQL3インストール画面1

 
PHPとパーミッションの設定に問題がなければ、以下のような画面が表示されるので、”Next”をクリック。
 
図2:NagiosQL3インストール画面2
図2:NagiosQL3インストール画面2

 
次に、MySQLに関する設定とNagiosQLのログインユーザの設定を行う。
まずは、MySQLに関する設定を行う。
 
図3-1:NagiosQL3インストール画面3-1
図3-1:NagiosQL3インストール画面3-1

 
次に、画面を下にスクロールしてNagiosQLのログインユーザの設定を行い、”Next”をクリック。
 
図3-2:NagiosQL3インストール画面3-2
図3-2:NagiosQL3インストール画面3-2

 
特に問題がなければ、以下のような画面が表示されるので、NagiosQLのinstallディレクトリを削除した後で”Finish”をクリックする。
 
図4:NagiosQL3インストール画面4
図4:NagiosQL3インストール画面4

 

# cd /var/www/html/nagiosql3
# rm -rf ./install

 
NagiosQLのinstallディレクトリを削除した後で”Finish”をクリックするとNagiosQLのログイン画面が表示される。
 
図5:NagiosQL3ログイン画面
図5:NagiosQL3ログイン画面

 

NagiosQLのディレクトリ設定の変更

今回は、Nagios(3.x)標準のディレクトリ構成に合わせて構築するため、NagiosQLのディレクトリ設定を変更する必要がある。
この作業はNagiosQLで行う。
まずは、インストール時に指定したログインユーザでNagiosQLにログインしてみよう。
ログインしたら、左側のサイドメニューから Administration → Domains と順にクリックすると、以下のような画面が現れるので、一番右側のFunction列のところにある編集アイコンをクリックする。
 
図6:NagiosQL3ディレクトリ構成設定画面1
図6:NagiosQL3ディレクトリ構成設定画面1

 
以下の画面でNagiosQLが扱うファイルの設定を行う。
今回の条件なら、下記の設定で問題ないはずだ。
細かい内容は、各入力ボックスの横のヘルプアイコン(?マークのアイコン)をクリックすれば、説明が出てくる。
NagiosQLは、2.xより3.xのほうが、かなりよくなっている。
細かい配慮がされているように思う。
以下の画面を見て気づいている人もいると思うが、実はNagiosQL(3.x)では複数のNagiosサーバの設定ファイルを一元管理できるようになっているのだ。
Nagiosサーバ毎に上記画面のドメイン設定を1つ追加していく。
設定ファイルの出力については、下記の画面のMethodの項目で設定する。
NagiosQLをインストールしてあるローカルサーバでは”Fileaccess”を選択し、NagiosQLをインストールしていないリモートサーバに対しては”FTP”を選択すればいい。
NagiosQL(2.x)では、NagiosQLをインストールしたローカルサーバのNagiosの設定ファイルしか扱えなかったが、実際にNagiosを使い込んでいくと複数のNagiosを連携させた監視システムを構築できたりする。
そういう場合に、複数のNagiosサーバの設定ファイルを一元管理できるというのは、かなりうれしい。
 
図7-1:NagiosQL3ディレクトリ構成設定画面2-1
図7-1:NagiosQL3ディレクトリ構成設定画面2-1

 
次に、画面を下にスクロールしてNagiosのバージョン(今回は”3.0+”でOK)を選択し、Activeのチェックボックスにチェックを入れ、”Save”をクリックする。
 
図7-2:NagiosQL3ディレクトリ構成設定画面2-2
図7-2:NagiosQL3ディレクトリ構成設定画面2-2

 

Nagiosのディレクトリ設定の変更

NagiosQLを使って、以下の設定をNagiosの設定ファイルnagios.cfgに書き込む。
すでに、いくつかの設定は記述されているので、足りない分を追加する。
 

cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/commands.cfg

cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg
cfg_file=/usr/local/nagios/etc/objects/servicegroups.cfg
cfg_file=/usr/local/nagios/etc/objects/contactgroups.cfg

cfg_file=/usr/local/nagios/etc/objects/hosttemplates.cfg
cfg_file=/usr/local/nagios/etc/objects/servicetemplates.cfg
cfg_file=/usr/local/nagios/etc/objects/contacttemplates.cfg

cfg_file=/usr/local/nagios/etc/objects/servicedependencies.cfg
cfg_file=/usr/local/nagios/etc/objects/serviceescalations.cfg
cfg_file=/usr/local/nagios/etc/objects/hostdependencies.cfg
cfg_file=/usr/local/nagios/etc/objects/hostescalations.cfg
cfg_file=/usr/local/nagios/etc/objects/hostextinfo.cfg
cfg_file=/usr/local/nagios/etc/objects/serviceextinfo.cfg

cfg_dir=/usr/local/nagios/etc/objects/hosts
cfg_dir=/usr/local/nagios/etc/objects/services

 
さらに、以下のように2箇所変更を加える必要がある。
 

cfg_file=/usr/local/nagios/etc/objects/templates.cfg
 ↓
#cfg_file=/usr/local/nagios/etc/objects/templates.cfg

cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
 ↓
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

 
左側のサイドメニューから Tools → Nagios config (下図の赤丸部分)をクリックすると、以下のような画面が現れるので、上記の設定を適当なところに追加し、Saveボタンを押す。
 
図8:NagiosQL3 nagios.cfg設定画面
図8:NagiosQL3 nagios.cfg設定画面

 

NagiosQLの動作確認

一番問題となるのは、Nagiosの設定ファイルの出力や再起動ができるかということだ。
パーミッションやオーナー・グループが正しく設定されていないとNagiosの設定ファイルの出力や再起動ができない。
左側のサイドメニューから Tools → Nagios control (下図の赤丸部分)をクリックすると、以下のような画面が現れるので、Nagiosの設定ファイルの出力や再起動ができるかを順に確認していく。
 
図9:NagiosQL3 Nagios管理画面1
図9:NagiosQL3 Nagios管理画面1

 
まずは、Write monitoring data の Do it ボタンを押してNagiosの基本設定ファイルを出力する。
成功すれば、下記の画面のように Configuration file successfully written! という緑色のメッセージが表示される。
 
図10:NagiosQL3 Nagios管理画面2
図10:NagiosQL3 Nagios管理画面2

 
次に、Write additional data の Do it ボタンを押してNagiosの拡張設定ファイルを出力する。
成功すれば、下記の画面のように Configuration file successfully written! というメッセージが表示される。
 
図11:NagiosQL3 Nagios管理画面3
図11:NagiosQL3 Nagios管理画面3

 
さらに、Check configuration files: の Do it ボタンを押してNagiosの設定ファイルのチェックを行う。
下記の画面のように Total Warnings: 0 、Total Errors: 0 となっていれば問題ない。

図12:NagiosQL3 Nagios管理画面4
図12:NagiosQL3 Nagios管理画面4

 
最後に、Restart Nagios: の Do it ボタンを押してNagiosの再起動を行う。
下記の画面のように Restart command successfully sent to Nagios という緑色のメッセージが出力されればOKだ。
 
図13:NagiosQL3 Nagios管理画面5
図13:NagiosQL3 Nagios管理画面5

 
 

 


Categories: Nagios ,NagiosQL


4 Responses to “NagiosQL(3.0.3)のインストール”

  1. オミ より:

    はじめまして。

    現在こちらのサイトを参考にさせて頂きながら、Nagios の構築をしています。

    NagiosQL コンソールに繋げるところまでは出来たのですが、コンソールにてNagiosの設定ファイルチェックを行った際(図12)に以下のようなエラーが出力されます。

    ◆Error:There are no services defined!

    ◆Error:There are no hosts defined!

    ◆Error:There are no contacts defined!

    何か考えられる原因があればご教授頂けると助かります。

    宜しくお願いします。

  2. Junrei より:

    オミさん

    コメントありがとうございます。

    おそらく、オミさんの環境のNagiosQLには、serviceやhost、contactの設定がないんだと思いますが、いかがでしょうか?

    もし、そうなのであれば、考えられる対応策は以下の2通りです。
    1.NagiosQLで、これらの設定を追加する。
    2.既存のNagiosの設定ファイルがあるのであれば、それらをNagiosQLにインポートする。

    ただ、気になるのは、図12までは、うまく行っている点ですね。
    もし上記のように設定がないんだとしたら、図10あたりからそのようなメッセージが出力されると思うのですが?

    参考になれば幸いです。

  3. オミ より:

    管理人様

    ご回答有難う御座います。

    再度確認したところ、図3 にある「サンプル設定ファイルをインポートする場合はチェックする」
    というところをチェックしていなかった事が原因でした。

    現在は、監視をするために監視用プラグインを追加する作業をやっていまして、
    これまたうまくいってませんがチマチマ頑張ります(笑)

    もしまた何か壁にぶち当たったら、相談させて頂ければと思います。

    有難う御座いました!

  4. Junrei より:

    オミさん

    管理人です。

    うまくいきましたか!
    よかったですね。

    ポイントは図3-2のところだったんですね。
    サンプルをインポートするか否かは、好みによりますからね。
    私の場合、サンプルの設定が気に入らなかったので、全部自分であとから追加したため、このブログでは、チェックが入っていない図となっています。

    初めての方には、わかりずらい説明になってしまいましたね。

    監視用プラグインの追加は、自作のプラグインを追加しようとされているのでしょうか?
    それとも、コマンド定義の方法がうまく行かないのでしょうか?

    いずれにしても、わかる範囲でご回答いたします。

    今後ともよろしくお願いします。

Leave a Reply