CentOS7環境にyumでNagiosとNDOUtilsをインストール

NagiosというのはLinux環境で動作するネットワーク監視ツールなんですが、詳細は上記の記事を読んでいただくとして、この記事ではCentOS7環境にyumでインストールするところを書いてみようと思います。さらに、Nagiosの導入だけでなくNagiosの監視データをMySQLに保存するNDOUtilsも。

yumでNagiosをインストール

以前は日本語化もしたかったのでNagiosをソースのコンパイルからやっていたのですが、今回はお手軽にyumでインストールします。
Nagiosは実際の監視を行う(PINGを打ったりする)プラグインと、プラグインに指示を与える本体にパッケージが分かれています。実際の監視を行う部分が切り分けられているため、プラグインの数だけ監視の種類(PING以外にWebサーバの動作を監視するとか、FTPサーバの動作を監視するとか・・・)を増やすことができます。最近は、MQTTに対応したプラグインもあるようなので、追々試してみようと思います。(MQTTプラグインはyumでのインストールには含まれていません。)

yum install nagios nagios-plugins-all

yumでのインストールが完了すれば、あとは起動するだけです。デフォルトの設定では、localhostへのPINGやディスク容量等の監視が含まれています。

systemctl start nagios
systemctl enable nagios

Nagiosは監視結果の表示をWeb UIで行いますが、yumでインストールすると、Apacheの設定ファイル(/etc/httpd/conf.d/nagios.conf)が自動で配置されます。Web UIは基本認証がかかっているので、下記の操作でhtpasswdファイルを作ってパスワードを設定すれば、あとはApacheの再起動でWeb UIが起動します。

htpasswd /etc/nagios/passwd nagiosadmin
systemctl restart httpd

http://localhost/nagiosにアクセスすると、こんな感じにlocalhostの監視状況が表示されます。Swap UsageがCRITICALになっていますが、このサーバがEC2でスワップに対応させていないためです。

Nagiosの実行ファイルは/etc/sbin/nagiosに、設定ファイルは/etc/nagios配下に配置されているので、適宜設定を行います。

NDOUtils

次にNDOUtilsです。これもyumでインストール可能です。

yum install ndoutils

まず、/etc/nagios/ndo2db.cfgを編集します。ndo2dbはndomodからNagiosのデータを受信して、MySQLに書き込むデーモンです。

DATABASE USERNAME/PASSWORD
# This is the username/password that will be used to authenticate to the DB.
# The user needs at least SELECT, INSERT, UPDATE, and DELETE privileges on
# the database.
db_user=ndouser
db_pass=[パスワード] ←ここを編集

ndo2db.cfgに設定したとおりにMySQLのデータベースやユーザーを作っておく必要があります。ndo2db.cfgのデフォルトに沿うなら、データベース名はnagios、ユーザー名はndouserとなります。パスワードはデフォルトから変えておいた方が良いでしょう。

また、下記のスクリプトを流して指定のデータベースにテーブルを作成します。

cd /usr/share/doc/ndoutils-2.1.2/
chmod +x installdb
./installdb -u ndouser -p [パスワード] -h localhost -d nagios

ndo2dbはデーモンなのでソケットフォイルを作成しますが、その格納先ディレクトリのオーナーを変えておかないとPermission deniedになってndo2dbが起動しないという落とし穴が・・・。

chown nagios:nagios /var/run/ndoutils

次に、Nagiosのデータをndo2dbに送信するndomodですが、とりあえず動かすだけなら設定ファイル(/etc/nagios/ndomod.cfg)の編集は不要でしょう。

ndomodはNagiosのオブジェクトブローカーとして動作するため、/etc/nagios/nagios.cfgに下記の行を追加します。(最後の行だけ追加)

broker_module=/somewhere/module1.o
#broker_module=/somewhere/module2.o arg1 arg2=3 debug=0
broker_module=/usr/lib64/nagios/brokers/ndomod.so config_file=/etc/nagios/ndomod.cfg

あとは、ndo2dbの起動とNagiosの再起動を行えば、NagiosのデータがMySQLに書き込まれるようになるでしょう。

systemctl start ndo2db
systemctl restart nagios

この後は、導入したNagiosを使っていくつか実験をやってみようと思います。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。2018年、株式会社ビビンコを北九州市に創業。IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。