【Nagios集中講座 第5回】Nagiosのディレクトリ構造とファイルの役割を知ろう

前回はNagiosのインストールを行いました。

今回は予告どおり、Nagiosのディレクトリ構成とファイルの役割について説明していきます。

ディレクトリ構造

/usr/local/nagios配下のディレクトリ構造は下記のようになっています。

  • bin ・・・実行ファイル
  • etc ・・・設定ファイル
  • include
  • libexec ・・・プラグイン
  • sbin
  • share ・・・Web画面(結果表示)のCGI
  • var ・・・ロックファイル、ログファイル、監視結果ファイルなど

さらに、varディレクトリは下記のような構造です。

  • archives ディレクトリ ・・・nagios.logのアーカイブ
  • rw ディレクトリ ・・・nagios.cmdパイプ(後述)がある
  • spool ディレクトリ ・・・Nagiosが内部的に使用
  • nagios.log ファイル ・・・Nagiosのログファイル
  • nagios.lockファイル ・・・Nagiosのロックファイル
  • status.datファイル ・・・監視結果ファイル(テキスト形式)
  • retention.datファイル ・・・Nagiosを再起動した際に状態を維持しておくために使用
  • objects.cacheファイル ・・・設定ファイルから読み取った内容をキャッシュする

nagios.cmdパイプは、外部コマンドと呼ばれるコマンドをこのパイプに流し込むことで、Nagios Coreにいろいろなことを伝えることが出来ます。Nagiosの再起動も外部コマンドで行うことが出来ます。また、外部コマンドの代表的な活用例として、パッシブ監視の監視結果の投入があります。
また、NDOUtilsを導入した場合は、下記のファイルもvarディレクトリに格納されます。

  • ndo.sockファイル ・・・NDOのソケット
  • ndo2db.lockファイル ・・・NDO2DBのロックファイル

設定ファイルの種類

etcディレクトリには設定ファイルが格納されます。設定ファイルはすべて単純なテキストファイルです。

設定ファイルは、Nagios全体の動作を司るものと、Nagiosが監視する対象などについて個別に設定していくものの2種類があります。後者を特にオブジェクト設定ファイルといいます。

  • nagios.cfg ・・・Nagios全体の設定ファイル
  • cgi.cfg ・・・Web画面の設定ファイル

特に重要なのは、nagios.cfgです。このファイルの設定内容により、Nagiosの動作が決まります。オブジェクト設定ファイルのパスもここで設定します。

オブジェクト設定ファイル

オブジェクト設定ファイルは決まったファイル名はありません。すべてのオブジェクト設定を1つのファイルにまとめて書いても良いし、オブジェクト設定ごとに別のファイルにしても良いです。すべては、nagios.cfgで設定したとおりにファイルを読み込むということですね。

もちろん、オブジェクト設定ごとの書き方は決まっています。オブジェクトの種類は、下記のとおりです。

  • host ・・・ホスト定義
  • hostgroup ・・・ホストグループ定義
  • service ・・・サービス定義
  • servicegroup ・・・サービスグループ定義
  • contact ・・・通知先定義
  • contactgroup ・・・通知先グループ定義
  • timeperiod ・・・時間帯定義
  • command ・・・コマンド定義
  • hostdependency ・・・ホスト依存定義
  • servicedependency ・・・サービス依存定義
  • hostescalation ・・・ホストエスカレーション定義
  • serviceescalation ・・・サービスエスカレーション定義
  • hostextinfo ・・・拡張ホスト情報定義
  • serviceextinfo ・・・拡張サービス情報定義

これらのオブジェクトの種類を常にいつも使うわけではありません。必要なものだけ書けば良いのです。

ホスト、ホストグループ、サービス、通知先、通知先グループ、時間帯、コマンドといったあたりは、デフォルトでも定義されていますので、/usr/local/nagios/etc/objects配下のファイルを眺めてみると良いでしょう。

次回は、オブジェクト設定の種類について、さらに詳しく説明します。

Nagios集中講座 Index

この記事を書いた人

井上 研一

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