ネット ワーク監視サーバーNagiosのインストール


 これまでNetsaintのインストールに加え、その後継 であるNagiosについてインストールしてみた。
 OSは、RedHat7.3のFTP版である。

○事前準備
  Nagiosの最新版である nagios-1.0.tar.gz とプラグインである nagiosplug-1.3.0-beta2.tar.gz を、さらにアイコン集であるimage@ak-bade.tar.gzダ ウンロードする。

 RedHatは、Turbolinuxと異なり必要なGDとか devel関係は全てインストールされているためインストール前の準備はほとんど必要な い。

○インストール
 ダウンロードした nagios-1.0.tar.gz を /tmp などに移動し、そこで
#adduser nagios
#passwd nagios

#tar zxvf nagios-1.0.tar.gz
#cd nagios-1.0
#./configure

 次に行うべき操作ガイドが出ればOKである。


#mkdir /usr/local/nagios

#make all
#make install
#make install-init
#make install-config

これでインストールは完了。次にプラグインをインストールする。

#tar zxvf nagiosplug-1.3.0-beta2.tar.gz
#cd nagiosplug-1.3.0-beta2
#./configure
#make all
#make install

bin/ Nagiosのコアプログラム
etc/ コンフィグファイル
libexec/ プラグインモジュール
sbin/ CGIプログラム
share/ HTMLファイル
var/ ログファイル用の空ディレクトリ

○Webサーバーの設定。
  NetSaintと同じである。
/etc/httpd/conf/httpd.conf に次の内容を追記する。この際デフォルトで書かれている

ScriptAlias /cgi-bin/ の行は削除しておく。また、順序はこの通りでないといけない。上下逆にすると動作しない。
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">
Options None
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

つぎは認証関係の設定である。 /etc/httpd/conf/access.conf に次の内容を追記する。

<Directory /usr/local/nagios/sbin>
AllowOverride AuthConfig
order allow,deny
allow from all
Options ExecCGI
</Directory>

<Directory /usr/local/nagios/share>
AllowOverride AuthConfig
order allow,deny
allow from all
</Directory>

/usr/local/nagios/share と /usr/local/nagios/sbin に ./htaccess ファイルを作成し、以下の内容を記入する。

AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
require valid-user

最後にユーザー登録を行う。

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

これでWebServeにアクセスするための設定は完了である。

○コンフィグファイルの設定
 NagiosはNetSaintに比べてコンフィグファイルが相当増 加している。以下にそれぞれの設定内容について記す。
  • nagios.cfg--Nagios実行時に参照されるメインのコンフィグファイルである。デフォルトのままでOK。
  • resource.cfg--ユーザ作成のマクロの定義や、データベースとの接続に必要な情報を設定するために使用する。この ファイルもデフォルトのままでOK
  • hosts.cfg-- 監視対象機器の情報を指定する。サンプル
  • hostgroups.cfg--監視対象を通知方法などで区別するためグループ化する。サンプル
  • services.cfg--各監視対象機器に、どのような監視を実行するのかを指定する。サンプル
  • checkcommand.cfg-- Nagiosが監視対象に対して実行するコマンドを定義する。デフォルトでOK
  • contacts.cfg--サンプル
  • contactgroups.cfg--上の contacts.cfg と併せて通知方法、通知先を指定。サンプル
  • escalations.cfg--全文コメント化。サ ンプル
  • misccommands.cfg--デフォルトのまま。
  • dependencies.cfg--全文コメント化。サンプル
  • timeperiods.cfg--デフォルトのまま。
  • cgi.cfg--認証の設定や statusmap のアイコン、レイアウト設定を行う。サンプル
  • hostextinfo.cfg-- statusmap のアイコン、レイアウトの指定ファイル。サンプル
    アイコンを使う場合は cgi.cfg ファイルに exdtemplate_config_file を追加

メール通知の確認は mail コマンドを使用して
#mail anabuki@mail.xxxxx.co.jp
などとして通知先にメールが届いておればOK

重要事項
1.cgi.cfg ファイルの

#authorized_for_system_commands=nagiosadmin

これをはずしておかないと cgi ファイルアクセス時にパーミッション関係のエラーが出て内容が表示されないので注意が必要である。他のauthorized 関係の記述についても同じ。

2.statusmapに好みのアイコンを表示させるには  Template-based method によることが必要である。
  これを実現するには、 cgi.cfg でにOld "default" methodの指定をコメント化して
  xedtemplate_config_file= /usr/local/nagios/etc/hostextinfo.cfg
  を追記する。
  さらに hostextinfo.cfg を /usr/local/nagios/etc に作成する。記載内容は、サンプルをごらん頂きたい。
  しかし、これではアイコンは変わったが、位置は指定できなかった。 何か間違いがあるようである。

(注)nagios1.1 で試したところ以下の通り表示された。

statusmap


3.日本語表示
  /etc/local/nagios/etc/hosts.cfg ファイルのホスト登録で alias は日本語の使用が可能。EUCで登録すれば nagios 上
で日本語が表示される。
  しかし、 ホスト名はアルファベットでないとエラーとなるようである。
  また、 statusmap 上でも日本語が欲しいが icon_image_alt など表示文字の登録は日本語を受け付けないようであり、
  日本語で icon_image_alt を登録したところ何も表示されなかった。

ホスト一覧

4.メールの日本語化
   /usr/local/nagios/etc/miscommands.cfg の該当部分をEUCコードによる日本語とすることによりメールの一部が
日本語表示となる。
  少しは分かりやすいだろうか。
# 'host-notify-by-email' command definition
define command{
        command_name    host-notify-by-email
        command_line    /usr/bin/printf "***** A社  *****\n\nNotification Typ
e: $NOTIFICATIONTYPE$\nHost: $HOSTALIAS$\nState: $HOSTSTATE$\nAddress: $HOSTADDR
ESS$\nInfo: $OUTPUT$\n\nDate/Time: $DATETIME$\n" | /usr/bin/mail -s "Host $HOSTS
TATE$ alert for $HOSTNAME$!" $CONTACTEMAIL$
        }

メールの表示
 ***** A社  *****

Notification Type: RECOVERY
Host: Windows端末
State: UP
Address: 192.168.0.5
Info: PING OK - Packet loss = 0

5.plugin関係
  check_local_diskコマンドは、nagiosが動作 しているPCについてのみ有効。
  また、turbolinuxでは何故か動作していない。 RedHatではOKであった。

6.監視サービスの追加
  監視サービスは、 checkcommand.cfg で規定しているので規定外のサービスを監視する場合は、ここへの追記が必要となる。proxyサーバー用に追記した内容を以下に示す。
# 'check_proxy' command definition
define command{
command_name check_proxy
command_line $USER1$/check_http -H $HOSTADDRESS$ -p 8080 ← port を8080に設定した場合。

対象のsquidを止めたところアラームがでたので正常に動いているよ うある。

7.Nagiosサーバーからのメールが直接インターネットに出られな い環境でのメール中継の設定
  sendmail−CFによる設定の場合 
   DEFAULT_RELAY='smtp:xxxx.xxxx.jp'          sendmail.defを変更
            m4による設定の場合  
define(`SMART_HOST', `xxxx.xxxx..jp')dnl    sendmail.mcを変更
   postfix  −
                                    relayhost = xxx.xxx.jp                main.cfを変更


8.Nagiosの拡張機能設定例


前 ページ