監視ソフトNagios、メール解決などナギオスの初期手順

Nagiosは、統合監視ソフトです。読み方は「ナギオス」といいます。
CentOS7へのインストールからメールが飛ばない問題解決などの初期手順をまとめています。

目次

1. Nagiosとは

Nagiosは、統合監視ソフトです。サーバやサーバ内のプロセスの定期監視、異常検知時のメール通知機能があります。

読み方は「ナギオス」です。

2. CentOS7にNagiosを構築

Apache HTTP Serverの構築

# yum -y install httpd
# systemctl enable httpd
# systemctl restart httpd
# firewall-cmd --add-service=http --permanent 
# firewall-cmd --reload
# echo "OK" > /var/www/html/index.html

上記のコマンドを実行して、「http://<サーバIPまたはドメイン名>/index.html」にアクセスして「OK」と表示されば一先ずApacheでページが閲覧できる状態になります。

詳しい手順、その他必要な設定などは「CentOS7のApache2.4のインストール方法」にまとめています。

PHPインストール

phpをインストールします。

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum -y install php56w php56w-common php56w-gd php56w-mbstring php56w-mcrypt
# php -v
PHP 5.6.22 (cli) (built: May 28 2016 09:28:52)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

PHPの動作確認

echo "<?php echo 'PHP OK'; ?>" > /var/www/html/index.php

上記のコマンドを実行して、「http://<サーバIPまたはドメイン名>/index.php」にアクセスして「PHP OK」と表示されば一先ずApacheでPHPのページが閲覧できる状態になります。

nagiosのインストール

必要なモジュール、コマンドのインストール

# yum -y install gd-devel gcc perl wget patch unzip

nagiosユーザ作成

# useradd -d /usr/local/nagios/ -M nagios

nagiosのダウンロード

# wget http://tenet.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.1.1/nagios-4.1.1.tar.gz

nagiosのインストール

# tar zxvf nagios-4.1.1.tar.gz
# cd nagios-4.1.1
# wget http://ftp.momo-i.org/pub/security/nagios/patches/nagios-jp-4.1.1.patch.gz
# gzip -dc nagios-jp-4.1.1.patch.gz|patch -p1
# ./configure && make all && make fullinstall && make install-config
cd ..
# rm -Rf nagios-4.1.1  nagios-4.1.1.tar.gz

Nagiosプラグインインストール

# yum -y install mysql-devel
# wget http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
# tar -zxvf nagios-plugins-2.1.1.tar.gz
# cd nagios-plugins-2.1.1
# ./configure && make && make install
# cd ..
# rm -Rf nagios-plugins-2.1.1  nagios-plugins-2.1.1.tar.gz

Apache設定

/etc/httpd/conf.d/nagios.confにBASIC認証の記述がありますので、パスを確認してパスワードファイルを作成します。

パスの確認

# cat /etc/httpd/conf.d/nagios.conf|grep AuthUserFile
         AuthUserFile /usr/local/nagios/etc/htpasswd.users
      AuthUserFile /usr/local/nagios/etc/htpasswd.users
         AuthUserFile /usr/local/nagios/etc/htpasswd.users
      AuthUserFile /usr/local/nagios/etc/htpasswd.users

nagiosユーザをapacheグループに設定

# usermod -G nagios apache

認証用ファイル作成

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

ユーザ名を「nagiosadmin」から変更する場合は「/usr/local/nagios/etc/cgi.cfg」の設定など別途設定ファイルの修正が必要です。

メール通知用にmailxインストール

インストール

# yum -y install mailx

メール送信確認

echo "TEST" | /bin/mail -s "TEST" <メールアドレス>

Nagios設定

コア設定、nagios.cfgの修正

# vi /usr/local/nagios/etc/nagios.cfg
cfg_file

「cfg_file=/usr/local/nagios/etc/objects/localhost.cfg」コメントアウトします。

# cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
cfg_dir

「# cfg_dir=/usr/local/nagios/etc/servers」のコメントを外します。

cfg_dir=/usr/local/nagios/etc/servers

/usr/local/nagios/etc/serversディレクトリ作成

# mkdir /usr/local/nagios/etc/servers

通知設定、contacts.cfgの編集

emailのところのメールアドレスを変更します。以下は<メールアドレス1>と<メールアドレス2>へ通知する例です。

# vi /usr/local/nagios/etc/objects/contacts.cfg
:
define contact{
        contact_name                    nagiosadmin		; Short name of user
	use				generic-contact		; Inherit default values from generic-contact template (defined above)
        alias                           Nagios Admin		; Full name of user

        email                           <メールアドレス1> 	; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
        }

define contact{
        contact_name                    kanshi
        use                             generic-contact
        alias                           Nagios kanshi

        email                           <メールアドレス2>
        }
:
define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 nagiosadmin,kanshi
        }

コマンド設定commands.cfgの修正

check_http

check_httpのところを以下のように修正します。

# vi /usr/local/nagios/etc/objects/commands.cfg
:
# 'check_http' command definition
define command{
        command_name    check_http
        command_line    $USER1$/check_http -H $HOSTADDRESS$ -u $ARG1$ -w $ARG2$ -c $ARG3$
        }
:

通知設定

今回はHTTPの監視設定のみ追加します。

# vi /usr/local/nagios/etc/servers/e-algorithm.cfg
HTTP

1分に1回、/test.htmlをチェックし、レスポンスが5秒の場合警告、30秒の場合クリティカルにします。

define host{
        use                     linux-server
        host_name               e-algorithm.xyz
        alias                   e-algorithm.xyz
        address                 e-algorithm.xyz
        }

define service{
        use                             generic-service
        host_name                       e-algorithm.xyz
        service_description             HTTP
        check_command                   check_http!/test.html!5!30
        notifications_enabled           1
        normal_check_interval           1
        retry_check_interval            1
        contact_groups                  admins
        }

nagiosサービス登録・起動

起動ファイル作成

# vi /etc/systemd/system/nagios.service

以下の内容を記述します。

[Unit]
Description=Nagios
BindTo=network.target

[Install]
WantedBy=multi-user.target

[Service]
User=nagios
Group=nagios
Type=simple
ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg

サービス登録

# systemctl enable /etc/systemd/system/nagios.service

サービス起動・起動確認・自動起動設定

# systemctl start nagios
# systemctl status nagios
# systemctl enable nagios

Nagiosの管理画面の確認

「http://<サーバIP>/nagios/」にアクセスしてnagiosのページが表示されることを確認します。BASIC認証は「/usr/local/nagios/etc/htpasswd.users」を作成したときのユーザ名とパスワードを入力します。

インストール後にnagiosの管理画面を表示した結果

http監視と通知メールの確認

test.htmlを削除して、しばらくしたら管理画面にクリティカルが表示され、監視メールが対象のメールアドレスに届くか確認します。

3. メールが飛ばない、メールが送信できない場合の解決方法

ナギオスからメールが飛ばない、メールが送信できない場合は以下を確認してみます。

/var/log/maillogに出力がない場合

もし、メールが届かない場合は、/var/log/maillogに出力があるかを確認します。

/var/log/maillogに出力がない場合は、以下のコマンドでメールが飛ぶか確認します。

echo "TEST" | /bin/mail -s "TEST" <メールアドレス>

コマンドが見つからない場合は「yum -y install mailx」でインストールします。

コマンドが実行できて/var/log/maillogに出力がない場合は設定ファイルの編集ミスやインストール不良があるものと思います。

/var/logの下のログ、/usr/local/nagios/var/nagios.logを確認して、問題点の切り口を見つけ対処します。

/var/log/maillogに出力がある場合

別のメールアドレスに変更して送信できるか確認してみます。

更新履歴

  • 2016年06月24日 メールが飛ばない、メールが送信できない場合の解決方法について追記しました。
  • 2016年06月23日 メール通知用に必要なmailxのインストールについて追記しました。
  • 2016年06月22日 記事をUPしました。

SNSでもご購読できます。