データセンターやラック、ネットワーク構成をマップで管理できるNagiosのアドオンツール『Nagvis』を使ってみた

先日より、自宅環境の監視で統合監視ツールを入れてみようと色々と調べていたのだが、Nagiosのアドオンにラック構成や地理情報に関するマップ、グラフを生成、可視化出来る『Nagvis』というものがあるようなので、使ってみることにした。こちらのスクリーンショットをみる限り、結構キレイに色々な情報を整理できるツールのようだ。
今回は、先日NagiosをインストールしたCentOS 7環境に対し、このアドオンを導入、実際に使ってみる事にする。

1.Nagvisのインストール

それでは、Nagiosのインストールされた環境に対し、以下のコマンドを実行し前提となるパッケージとNagvisをインストールする。
まだNagiosをインストールしていない場合は、こちらを参考にインストールしてもらいたい。

まずは、以下のコマンドで前提となるNagiosのアドオンやパッケージを導入する。

yum -y install php-mbstring php-pdo graphviz php-gd gcc-c++ rsync wget
mkdir -p /usr/local/src/nagios/
cd /usr/local/src/nagios/
wget http://mathias-kettner.com/download/mk-livestatus-1.2.5i6p4.tar.gz -O mk-livestatus.tar.gz
tar zxvf mk-livestatus.tar.gz
cd mk-livestatus-*
./configure --with-nagios4 && make && make install
cd

次に、Nagiosの設定を変更し、reloadさせる。

sed -i.bk '/^event_broker_options/i broker_module=\/usr\/local\/lib\/mk-livestatus\/livestatus.o \/usr\/local\/nagios\/var\/rw\/live' /usr/local/nagios/etc/nagios.cfg
/etc/init.d/nagios reload

設定がreloadされたら、Nagvisをインストールする。

wget http://www.nagvis.org/share/nagvis-1.8.5.tar.gz
tar zxfv nagvis-1.8.5.tar.gz
cd nagvis-*
./install.sh -n /usr/local/nagios -p /usr/local/nagvis -l "unix:/usr/local/nagios/var/rw/live" -b mklivestatus -u apache -g apache -w /etc/httpd/conf.d -a y
[root@BS-PUB-MONITOR-02 nagvis-1.8.5]# ./install.sh -n /usr/local/nagios -p /usr/local/nagvis -l "unix:/usr/local/nagios/var/rw/live" -b mklivestatus -u apache -g apache -w /etc/httpd/conf.d -a y
+------------------------------------------------------------------------------+
| Welcome to NagVis Installer 1.8.5                                            |
+------------------------------------------------------------------------------+
| This script is built to facilitate the NagVis installation and update        |
| procedure for you. The installer has been tested on the following systems:   |
| - Debian, since Etch (4.0)                                                   |
| - Ubuntu, since Hardy (8.04)                                                 |
| - SuSE Linux Enterprise Server 10 and 11                                     |
|                                                                              |
| Similar distributions to the ones mentioned above should work as well.       |
| That (hopefully) includes RedHat, Fedora, CentOS, OpenSuSE                   |
|                                                                              |
| If you experience any problems using these or other distributions, please    |
| report that to the NagVis team.                                              |
+------------------------------------------------------------------------------+
| Do you want to proceed? [y]:
+------------------------------------------------------------------------------+
| Starting installation of NagVis 1.8.5                                        |
+------------------------------------------------------------------------------+
|                                                                              |
+--- Checking for tools -------------------------------------------------------+
| Using packet manager /usr/bin/rpm                                      found |
|                                                                              |
+--- Checking paths -----------------------------------------------------------+
| Please enter the path to the nagios base directory [/usr/local/nagios]:
|   nagios path /usr/local/nagios                                        found |
| Please enter the path to NagVis base [/usr/local/nagvis]:
|                                                                              |
+--- Checking prerequisites ---------------------------------------------------+
| PHP 5.4                                                                found |
|   PHP Module: gd php                                                   found |
|   PHP Module: mbstring php                                             found |
|   PHP Module: gettext compiled_in                                      found |
|   PHP Module: session compiled_in                                      found |
|   PHP Module: xml php                                                  found |
|   PHP Module: pdo php                                                  found |
|   Apache mod_php                                                       found |
| Checking Backends. (Available: mklivestatus,ndo2db,ido2db)                   |
| Do you want to use backend mklivestatus? [y]:
| Do you want to use backend ndo2db? [n]:
| Do you want to use backend ido2db? [n]:
|   Livestatus Socket (/usr/local/nagios/var/rw/live)                    found |
|   PHP Module: sockets compiled_in                                      found |
| Graphviz 2.30                                                          found |
|   Graphviz Module dot 2.30.1                                           found |
|   Graphviz Module neato 2.30.1                                         found |
|   Graphviz Module twopi 2.30.1                                         found |
|   Graphviz Module circo 2.30.1                                         found |
|   Graphviz Module fdp 2.30.1                                           found |
| SQLite 3.7                                                             found |
|                                                                              |
+--- Trying to detect Apache settings -----------------------------------------+
| Please enter the web path to NagVis [/nagvis]:
| Please enter the name of the web-server user [apache]:
| Please enter the name of the web-server group [apache]:
| create Apache config file [y]:
|                                                                              |
+--- Checking for existing NagVis ---------------------------------------------+
|                                                                              |
+------------------------------------------------------------------------------+
| Summary                                                                      |
+------------------------------------------------------------------------------+
| NagVis home will be:           /usr/local/nagvis                             |
| Owner of NagVis files will be: apache                                        |
| Group of NagVis files will be: apache                                        |
| Path to Apache config dir is:  /etc/httpd/conf.d                             |
| Apache config will be created: yes                                           |
|                                                                              |
| Installation mode:             install                                       |
|                                                                              |
| Do you really want to continue? [y]:
+------------------------------------------------------------------------------+
| Starting installation                                                        |
+------------------------------------------------------------------------------+
| Creating directory /usr/local/nagvis...                                done  |
| Creating directory /usr/local/nagvis/var...                            done  |
| Creating directory /usr/local/nagvis/var/tmpl/cache...                 done  |
| Creating directory /usr/local/nagvis/var/tmpl/compile...               done  |
| Creating directory /usr/local/nagvis/share/var...                      done  |
| Copying files to /usr/local/nagvis...                                  done  |
| Creating directory /usr/local/nagvis/etc/profiles...                   done  |
| Creating main configuration file...                                    done  |
|   Adding MKLivestatus Backend...                                       done  |
|   Adding webserver group to file_group...                              done  |
| Creating web configuration file...                                     done  |
| Setting permissions for web configuration file...                      done  |
|                                                                              |
|                                                                              |
|                                                                              |
+--- Setting permissions... ---------------------------------------------------+
| /usr/local/nagvis/etc/nagvis.ini.php-sample                            done  |
| /usr/local/nagvis/etc                                                  done  |
| /usr/local/nagvis/etc/maps                                             done  |
| /usr/local/nagvis/etc/maps/*                                           done  |
| /usr/local/nagvis/etc/geomap                                           done  |
| /usr/local/nagvis/etc/geomap/*                                         done  |
| /usr/local/nagvis/etc/profiles                                         done  |
| /usr/local/nagvis/share/userfiles/images/maps                          done  |
| /usr/local/nagvis/share/userfiles/images/maps/*                        done  |
| /usr/local/nagvis/share/userfiles/images/shapes                        done  |
| /usr/local/nagvis/share/userfiles/images/shapes/*                      done  |
| /usr/local/nagvis/var                                                  done  |
| /usr/local/nagvis/var/*                                                done  |
| /usr/local/nagvis/var/tmpl                                             done  |
| /usr/local/nagvis/var/tmpl/cache                                       done  |
| /usr/local/nagvis/var/tmpl/compile                                     done  |
| /usr/local/nagvis/share/var                                            done  |
|                                                                              |
+------------------------------------------------------------------------------+
| Installation complete                                                        |
|                                                                              |
| You can safely remove this source directory.                                 |
|                                                                              |

| ./install.sh -n /usr/local/nagios -p /usr/local/nagvis -l "unix:/usr/local/nagios/var/rw/live" -b mklivestatus -u apache -g apache -w /etc/httpd/conf.d -a y
|                                                                              |
| What to do next?                                                             |
| - Read the documentation                                                     |
| - Maybe you want to edit the main configuration file?                        |
|   Its location is: /usr/local/nagvis/etc/nagvis.ini.php                      |
| - Configure NagVis via browser                                               |
|   <http://localhost/nagvis/config.php>                                       |
| - Initial admin credentials:                                                 |
|     Username: admin                                                          |
|     Password: admin                                                          |
+------------------------------------------------------------------------------+

これで、無事Nagvisがインストールできた。
最後に、httpdの設定をreloadしておく。

service httpd reload

2.とりあえずデモを使ってみる

Nagvisのインストールが完了したら、Webコンソール画面(http://nagvisサーバIPアドレス/nagvis/)でログインする。
なお、ログイン時の初期ID/PWは「admin/admin」となっている。

もしアクセス時に403エラーが出た場合、apacheのバージョンにあった設定ファイルの書き方になっていないため、以下のコマンドを実行すると良いだろう。

sed -i -e 's/Order allow,deny/#Order allow,deny/g' -e 's/Allow from all/#Allow from all/g' -e '/Allow from all/a\  Require all granted' /etc/httpd/conf.d/nagvis.conf
service httpd reload

ログインしてみると、インストール直後に触ることが出来るデモが用意されているので、少し触ってみることにしよう。

それぞれ、マップ上で対応する箇所をクリックするとNagiosのホスト情報に飛ぶようになっている。
う~ん…ちょっと見た目しょぼい気がするけど、ラック構成とホスト情報を紐付けて、かつNagiosにアドオン追加するだけって考えれば、まぁありなのかなぁ。

このマップもWebページから編集出来ることを考えると、まぁ検討の余地はありそうだ。