2018.11.12 · 技術と道具

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

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

yumでNagiosをインストール

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

BASH
yum install nagios nagios-plugins-all

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

BASH
systemctl start nagios
systemctl enable nagios

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

BASH
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でインストール可能です。

BASH
yum install ndoutils

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

BASH
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となります。パスワードはデフォルトから変えておいた方が良いでしょう。

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

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

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

BASH
chown nagios:nagios /var/run/ndoutils

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

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

BASH
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に書き込まれるようになるでしょう。

BASH
systemctl start ndo2db
systemctl restart nagios

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

2018/11/12 12:32
← 公衆無線LANのWi2が始めた新サービス「ギガぞう」について…
ゾンビAIを導入しないために考えるべきこと →
井上 研一
経済産業省推進資格ITコーディネータとして中小企業のDX・AI活用の現場で伴走支援を行う。「ITCプロセスガイドライン4.0」および「中小企業向けAI活用ガイド」執筆メンバー。著書・講演多数。ITエンジニアとして25年以上の実務経験。AI導入の実務に10年以上携わる。自ら開発したAIサービス「Gen2Go」が北九州発!新商品創出事業の認定を受ける。2026年4月より北九州市立大学大学院マネジメント研究科の学生としての顔も持つ。

本サイトおよびブログに掲載している内容は、特に明記のない限り、井上研一個人の見解に基づくものです。所属・関与する組織、団体、企業、研究会等の公式見解を示すものではありません。