Top | Wiki | Blog | Github  

Nagios

Nagios は,オープンソースのシステム監視ソフトです.Linux に入れて,WebサーバやDNSサーバなどの挙動を監視します.

<必要なもの>

  • nagios 本体
  • nagios のプラグイン
  • NRPE(リモートホストで使う)
  • NSCA(nagios をインストールしたホストで使う)

この他,Oreonを使ってGUIから見ることも可能.Oreon を利用するには,sudo, sed, php, apache, rrdtool, mysql が必要.

インストール

apt でインストール

Vine Linux では,apt で導入できます.現状では,2.5がインストールされます.ただ,アップデート時にNagiosに変更があると対応するのに面倒がありそうです.

$ apt-get update
> $ apt-get install nagios nagios-devel nagios-plugins

Nagios は,各種サーバの状況を監視するためにプラグインを導入する必要があります.

ソースからインストールする場合は,公式サイトからダウンロードします.

公式サイト

公式サイト(日本語)

Vine Linux 4.1 で apt したところ,次のようなフォルダにインストールされました.

CGIとプラグイン /usr/lib/nagios
ドキュメント /usr/share/doc/nagios-2.5/
HTMLファイル /usr/share/nagios
実行ファイル /usr/bin/nagios
設定ファイル /etc/nagios
ログファイル /var/log/nagios

また,自動的に専用アカウント(nagios)が作成されます.

OSX Tiger の場合,MacPorts を利用してインストールできます.現状では2.4.2がインストールされます.

$sudo port install nagios

tar.gz でインストール

ソースをダウンロードし,展開します.

  • nagios ユーザを追加する.
  • tar.gz を解凍して,./configure; make all; make isntall; make install-init; make install-commandmode; make install-config
  • nagios-plugins を解凍して,./configure; make all; make install
  • /usr/local/nagios/etc/ 内のコンフィグファイルをコピーする *-sample
  • /usr/local/nagios/etc/cgi.cfg 中で use_authentication=0 とする.
  • /etc/apache2/conf/extra/httpd-nagios.conf
ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/
<Directory “/usr/local/nagios/sbin/”>
AllowOverride AuthConfig
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Alias /nagios/ /usr/local/nagios/share/
<Directory “/usr/local/nagios/share”>
AllowOverride AuthConfig
Options None
Order allow,deny
Allow from all
</Directory>
  • /etc/apache2/conf/httpd.conf
Include conf/extra/httpd-nagios.conf
  • nagios と apache2 を再起動する.

設定 (基本)

参考とするべき情報は,localhost.cfg に記述されている.まずはこれをよく読む.

たとえば,ホストに関するテンプレートは次のように記述されている.

  define host {
      name         generic-host
      (いろいろ)
  }

これを(いろいろ)に記述された部分がテンプレートになっているので,他の host を設定するときには,次のように記述することでテンプレートを利用できる.

  define host {
      name         sample
      use            generic-host
      (sample特有の設定)
  }

(sample 特有の設定) と記した部分で,テンプレートを利用して設定するホストで利用する特定の監視項目などを設定する設計になっている.localhost.cfg の内部ではより階層化されていて,上位のテンプレートが,generic-host で,これを受けた linux-server という設定も存在している.さらにこれをテンプレートとして受けた localhost と呼ばれる host 設定が,nagios が駆動するサーバの情報にあたる.具体的には,次のエントリーが localhost を定義している.

  define host {
      name          linux-server
      host_name  localhost
      alias            localhost
      address       127.0.0.1
  }

設定 (ファイルの分離)

基本の設定で述べたように,Nagios のプラグインの設定は,テンプレートを継承する形で行う.独自の host 設定を localhost.cfg に直接書き込む以外にも,host の情報だけを管理するファイルを利用することができる.そのためにはまず,nagios.cfg 内部の次の行のコメントアウト外し,同パスに対して hosts.cfg を作成すればよい.これにより,localhost.cfg が読み込まれた後(テンプレートが有効化した後)独自の設定が読み込まれることになる.

  #cfg_file=/usr/local/nagios/etc/hosts.cfg

他にも,contactgroups.cfg, contacts.cfg, hostgroups.cfg, hosts.cfg, services.cfg などは,よく外部ファイルとして別に準備されることが多いようだ.もちろん監視するホスト数が少なければわざわざ localhost.cfg から分離する必要性は少ない.