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 |
tarballの解凍とディレクトリ設定
NagiosQLをドキュメントルート下に解凍する。
今回はCentOSのApacheのドキュメントルート/var/www/htmlに解凍する。
そして、ディレクトリのオーナー権限をApacheの実行アカウントであるapacheにする。
# cd /var/www/html |
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 |
また、今回のユーザ権限は以下のようになっている。
●Apache
user: apache
group:apache
●Nagios
user: nagios
group:nagios
これらをふまえて以下のように権限の設定を行う。
# usermod -G nagios apache |
インストール
NagiosQLのinstallディレクトリにENABLE_INSTALLERという空っぽのファイルを作成する。
# cd /var/www/html/nagiosql3/install |
次にブラウザでNagiosQLのインストールページ(http://サイトのURL/nagiosql3/install/index.php)にアクセスし、”Setup Language”で好きな言語を選択し、”Start new installation”をクリックする。
言語は日本語がないため、Englishにしておけばいいだろう。
図1:NagiosQL3インストール画面1
PHPとパーミッションの設定に問題がなければ、以下のような画面が表示されるので、”Next”をクリック。
図2:NagiosQL3インストール画面2
次に、MySQLに関する設定とNagiosQLのログインユーザの設定を行う。
まずは、MySQLに関する設定を行う。
図3-1:NagiosQL3インストール画面3-1
次に、画面を下にスクロールしてNagiosQLのログインユーザの設定を行い、”Next”をクリック。
図3-2:NagiosQL3インストール画面3-2
特に問題がなければ、以下のような画面が表示されるので、NagiosQLのinstallディレクトリを削除した後で”Finish”をクリックする。
図4:NagiosQL3インストール画面4
# cd /var/www/html/nagiosql3 |
NagiosQLのinstallディレクトリを削除した後で”Finish”をクリックするとNagiosQLのログイン画面が表示される。
図5:NagiosQL3ログイン画面
NagiosQLのディレクトリ設定の変更
今回は、Nagios(3.x)標準のディレクトリ構成に合わせて構築するため、NagiosQLのディレクトリ設定を変更する必要がある。
この作業はNagiosQLで行う。
まずは、インストール時に指定したログインユーザでNagiosQLにログインしてみよう。
ログインしたら、左側のサイドメニューから Administration → Domains と順にクリックすると、以下のような画面が現れるので、一番右側のFunction列のところにある編集アイコンをクリックする。
図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
次に、画面を下にスクロールしてNagiosのバージョン(今回は”3.0+”でOK)を選択し、Activeのチェックボックスにチェックを入れ、”Save”をクリックする。
図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/hosttemplates.cfg cfg_file=/usr/local/nagios/etc/objects/servicedependencies.cfg cfg_dir=/usr/local/nagios/etc/objects/hosts |
さらに、以下のように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 |
左側のサイドメニューから Tools → Nagios config (下図の赤丸部分)をクリックすると、以下のような画面が現れるので、上記の設定を適当なところに追加し、Saveボタンを押す。
図8:NagiosQL3 nagios.cfg設定画面
NagiosQLの動作確認
一番問題となるのは、Nagiosの設定ファイルの出力や再起動ができるかということだ。
パーミッションやオーナー・グループが正しく設定されていないとNagiosの設定ファイルの出力や再起動ができない。
左側のサイドメニューから Tools → Nagios control (下図の赤丸部分)をクリックすると、以下のような画面が現れるので、Nagiosの設定ファイルの出力や再起動ができるかを順に確認していく。
図9:NagiosQL3 Nagios管理画面1
まずは、Write monitoring data の Do it ボタンを押してNagiosの基本設定ファイルを出力する。
成功すれば、下記の画面のように Configuration file successfully written! という緑色のメッセージが表示される。
図10:NagiosQL3 Nagios管理画面2
次に、Write additional data の Do it ボタンを押してNagiosの拡張設定ファイルを出力する。
成功すれば、下記の画面のように Configuration file successfully written! というメッセージが表示される。
図11:NagiosQL3 Nagios管理画面3
さらに、Check configuration files: の Do it ボタンを押してNagiosの設定ファイルのチェックを行う。
下記の画面のように Total Warnings: 0 、Total Errors: 0 となっていれば問題ない。
図12:NagiosQL3 Nagios管理画面4
最後に、Restart Nagios: の Do it ボタンを押してNagiosの再起動を行う。
下記の画面のように Restart command successfully sent to Nagios という緑色のメッセージが出力されればOKだ。
図13:NagiosQL3 Nagios管理画面5
|
はじめまして。
現在こちらのサイトを参考にさせて頂きながら、Nagios の構築をしています。
NagiosQL コンソールに繋げるところまでは出来たのですが、コンソールにてNagiosの設定ファイルチェックを行った際(図12)に以下のようなエラーが出力されます。
◆Error:There are no services defined!
◆Error:There are no hosts defined!
◆Error:There are no contacts defined!
何か考えられる原因があればご教授頂けると助かります。
宜しくお願いします。
オミさん
コメントありがとうございます。
おそらく、オミさんの環境のNagiosQLには、serviceやhost、contactの設定がないんだと思いますが、いかがでしょうか?
もし、そうなのであれば、考えられる対応策は以下の2通りです。
1.NagiosQLで、これらの設定を追加する。
2.既存のNagiosの設定ファイルがあるのであれば、それらをNagiosQLにインポートする。
ただ、気になるのは、図12までは、うまく行っている点ですね。
もし上記のように設定がないんだとしたら、図10あたりからそのようなメッセージが出力されると思うのですが?
参考になれば幸いです。
管理人様
ご回答有難う御座います。
再度確認したところ、図3 にある「サンプル設定ファイルをインポートする場合はチェックする」
というところをチェックしていなかった事が原因でした。
現在は、監視をするために監視用プラグインを追加する作業をやっていまして、
これまたうまくいってませんがチマチマ頑張ります(笑)
もしまた何か壁にぶち当たったら、相談させて頂ければと思います。
有難う御座いました!
オミさん
管理人です。
うまくいきましたか!
よかったですね。
ポイントは図3-2のところだったんですね。
サンプルをインポートするか否かは、好みによりますからね。
私の場合、サンプルの設定が気に入らなかったので、全部自分であとから追加したため、このブログでは、チェックが入っていない図となっています。
初めての方には、わかりずらい説明になってしまいましたね。
監視用プラグインの追加は、自作のプラグインを追加しようとされているのでしょうか?
それとも、コマンド定義の方法がうまく行かないのでしょうか?
いずれにしても、わかる範囲でご回答いたします。
今後ともよろしくお願いします。