CentOS7

統合監視システム構築(Nagios)

統合監視システムNagios(日本語訳)でシステムを監視する。

※Webサーバー構築済であること

Nagiosインストール

Nagiosインストール

[root@localhost ~]# yum -y install gd-devel ← Nagiosに必要なgd-develをインストール
[root@localhost ~]# useradd -d /usr/local/nagios/ -M nagios ← nagiosユーザー作成
[root@localhost ~]# wget https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.2.4/nagios-4.2.4.tar.gz ← Nagiosダウンロード
※最新版のURLダウンロードページで確認すること
[root@localhost ~]# tar zxvf nagios-4.2.4.tar.gz ← Nagios展開
[root@localhost ~]# cd nagios-4.2.4 ← Nagios展開先ディレクトリへ移動
[root@localhost nagios-4.2.4]# wget http://ftp.momo-i.org/pub/security/nagios/patches/nagios-jp-4.2.4.patch.gz ← Nagios日本語化パッチダウンロード
※最新版のURLダウンロードページで確認すること
[root@localhost nagios-4.2.4]# gzip -dc nagios-jp-4.2.4.patch.gz | patch -p1 ← Nagios日本語化パッチ施行
[root@localhost nagios-4.2.4]# ./configure && make all && make fullinstall && make install-config ← Nagiosインストール
[root@localhost nagios-4.2.4]# cd ← Nagios展開先ディレクトリを抜ける
[root@localhost ~]# rm -rf nagios-4.2.4 ← Nagios展開先ディレクトリを削除
[root@localhost ~]# rm -f nagios-4.2.4.tar.gz ← ダウンロードしたファイルを削除

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

[root@localhost ~]# yum -y install mysql-devel ← mysql-develインストール ※MySQLの監視を行なう場合のみ
[root@localhost ~]# wget https://nagios-plugins.org/download/nagios-plugins-2.1.4.tar.gz ← Nagiosプラグインダウンロード
※最新版のURLダウンロードページで確認すること
[root@localhost ~]# tar zxvf nagios-plugins-2.1.4.tar.gz ← Nagiosプラグイン展開
[root@localhost ~]# cd nagios-plugins-2.1.4 ← Nagiosプラグイン展開先ディレクトリへ移動
[root@localhost nagios-plugins-2.1.4]# ./configure && make && make install ← Nagiosプラグインインストール
[root@localhost nagios-plugins-2.1.4]# cd ← Nagiosプラグイン展開先ディレクトリを抜ける
[root@localhost ~]# rm -rf nagios-plugins-2.1.4 ← Nagiosプラグイン展開先ディレクトリを削除
[root@localhost ~]# rm -f nagios-plugins-2.1.4.tar.gz ← ダウンロードしたファイルを削除

Nagios設定

[root@localhost ~]# vi /usr/local/nagios/etc/nagios.cfg ← nagios.cfg編集
cfg_dir=/usr/local/nagios/etc/servers ← 行頭の#を削除してコメント解除(サーバー監視設定有効化)

date_format=iso8601 ← 日付書式をYYYY-MM-DD HH:MM:SSにする
[root@localhost ~]# mkdir /usr/local/nagios/etc/servers ← サーバー監視設定ファイル格納ディレクトリ作成
[root@localhost ~]# vi /usr/local/nagios/etc/objects/contacts.cfg ← 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 管理者メールアドレス ← 管理者メールアドレスを指定
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
define service{
use local-service ; Name of service template to use
host_name localhost
service_description SSH
check_command check_ssh
notifications_enabled 1 ← 1を指定(SSH状態変化時に通知する)
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description HTTP
check_command check_http
notifications_enabled 1 ← 1を指定(HTTP状態変化時に通知する)
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
# 'notify-host-by-email' command definition
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/nkf -j | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ ← nkfコマンド追加(メール本文文字化け対処) }

# 'notify-service-by-email' command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/nkf -j | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ ← nkfコマンド追加(メール本文文字化け対処) }

Apache設定

[root@localhost ~]# usermod -G nagios apache ← apacheユーザーをnagiosグループに所属させる
[root@localhost ~]# vi /etc/httpd/conf.d/nagios.conf ← NagiosApache設定ファイル編集
<Directory "/usr/local/nagios/sbin">
# SSLRequireSSL
Options ExecCGI
AllowOverride None
<IfVersion >= 2.3>
<RequireAll>
<RequireAny> ← 追加
# Require all granted ← 行頭に#を追加してコメントアウト(内部からのみアクセス可能にする)
# Require host 127.0.0.1
Require ip 192.168.1.0/24 ← 追加(内部ネットワーク(例:192.168.1.0/24)からのみアクセス可能にする)
</RequireAny> ← 追加

AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</RequireAll>
</IfVersion>
<IfVersion < 2.3>
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1

AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</IfVersion>
</Directory>

<Directory "/usr/local/nagios/share">
# SSLRequireSSL
Options None
AllowOverride None
<IfVersion >= 2.3>
<RequireAll>
<RequireAny> ← 追加
# Require all granted ← 行頭に#を追加してコメントアウト(内部からのみアクセス可能にする)
# Require host 127.0.0.1
Require ip 192.168.1.0/24 ← 追加(内部ネットワーク(例:192.168.1.0/24)からのみアクセス可能にする)
</RequireAny> ← 追加

AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</RequireAll>
</IfVersion>
<IfVersion < 2.3>
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1

AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</IfVersion>
</Directory>
[root@localhost ~]# systemctl reload httpd ← Webサーバー設定反映
[root@localhost ~]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin ← Nagios管理ユーザー(nagiosadmin)作成
New password: ← 任意のパスワード応答※表示はされない
Re-type new password: ← 任意のパスワード応答(確認)※表示はされない
Adding password for user nagiosadmin

Nagios起動

[root@localhost ~]# /etc/rc.d/init.d/nagios start ← Nagios起動
[root@localhost ~]# chkconfig nagios on ← Nagios自動起動設定

Nagios確認

http://サーバー名/nagios/へアクセスしNgiosWebインタフェース画面が表示されることを確認。※ユーザー名/パスワードはhtpasswdコマンドで作成したNagios管理ユーザーのユーザー名/パスワードを指定する。

デフォルトの監視項目は自ホストの「CPU負荷」、「ログインユーザー数」、「Webサーバー稼動状況」、「ネットワーク障害」、「ディスク空き状況」、「SSHサーバー稼動状況」、「SWAP空き状況」、「プロセス数」。

監視ホスト追加

例としてホスト名fedora、IPアドレス192.168.1.20を監視ホストとして追加する。

[root@localhost ~]# vi /usr/local/nagios/etc/servers/fedora.cfg ← ホスト名.cfg作成
define host{
use linux-server
host_name fedora
alias fedora
address 192.168.1.20
}

define service{
use generic-service
host_name fedora
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

監視ホスト追加確認

http://サーバー名/nagios/へアクセスし、「ホスト」で追加したホストが表示されることを確認。

監視サービス追加(自ホスト編)

メモリ使用状況

[root@localhost ~]# wget "https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=4174&cf_id=24" -O check_mem ← check_memプラグインダウンロード
[root@localhost ~]# /bin/mv check_mem /usr/local/nagios/libexec/ ← check_memプラグインを所定のディレクトリへ移動
[root@localhost ~]# chmod +x /usr/local/nagios/libexec/check_mem ← check_memプラグインに実行権限付加
[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_mem' command definition
define command{
command_name check_mem
command_line $USER1$/check_mem -w $ARG1$ -c $ARG2$ -W $ARG3$ -C $ARG4$
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
#service_description Memory Free
service_description Memory Usage
check_command check_mem!80!90!80!90 ← 物理メモリ使用率が80%で警告、90%で異常、仮想メモリ使用率が80%で警告、90%で異常とする
}

--check_memプラグインで仮想メモリ使用率も取得できるため削除(ここから)--
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Swap Usage
check_command check_local_swap!20!10
}
--check_memプラグインで仮想メモリ使用率も取得できるため削除(ここまで)--
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

ログインユーザー数

[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
define service{
use generic-service
host_name localhost
service_description Current Users
check_command check_local_users!3!5 ← ログインユーザー数が3以上で警告、5以上で異常とする
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

NTP

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_ntp' command definition
define command{
command_name check_ntp
command_line $USER1$/check_ntp -H $ARG1$ -w $ARG2$ -c $ARG3$
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description NTP
check_command check_ntp!ntp.nict.jp!1!2 ← ntp.nict.jpと時間が1秒ずれていたら警告、2秒ずれていたら異常とする
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

clamd ※Clam AntiVirusまたはamavisd-new+Clam AntiVirus導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_clamd' command definition
define command{
command_name check_clamd
command_line $USER1$/check_clamd -H $ARG1$
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description clamd
check_command check_clamd!/var/run/clamav/clamd.sock ← /var/run/clamav/clamd.sock/etc/clamd.confまたは/etc/clamd.d/amavisd.confLocalSocketオプションで指定した値
}
[root@localhost ~]# chmod u+s /usr/local/nagios/libexec/check_clamd &color(lime){← clamdソケットファイルへ接続できるようにする
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

DNS ※BIND導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_dig' command definition
define command{
command_name check_dig
command_line $USER1$/check_dig -H $HOSTADDRESS$ -l $ARG1$
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description DNS
check_command check_dig!hoge.com ← 名前解決ホスト名に自ドメイン名を指定
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

SMTP ※メールサーバー導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description SMTP
check_command check_smtp
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

POP ※メールサーバー導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
# 'check_pop' command definition
define command{
command_name check_pop
command_line $USER1$/check_pop -H $HOSTADDRESS$ -s quit ← 「-s quit」追加
}
※「-s quit」はDovecotがpop3-login: Aborted login: rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, securedという
エラーメッセージをログに出力しないようにする対処
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description POP
check_command check_pop
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

IMAP ※メールサーバー導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
# 'check_imap' command definition
define command{
command_name check_imap
command_line $USER1$/check_imap -H $HOSTADDRESS$ -s "A2 logout" ← 「-s "A2 logout"」追加
}
※「-s "A2 logout"」はDovecotimap-login: Aborted login: rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, securedという
エラーメッセージをログに出力しないようにする対処
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description IMAP
check_command check_imap
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

milter-manager ※milter-manager(milter-greylist、clamav-milter、spamass-milter)導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← commands.cfg編集
以下を最終行へ追加
# 'check_milter-manager' command definition
define command{
command_name check_milter-manager
command_line $USER1$/check_tcp -H /var/run/milter-manager/milter-manager.sock
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description milter-manager
check_command check_milter-manager
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

milter-greylist ※milter-greylist導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_milter-greylist' command definition
define command{
command_name check_milter-greylist
command_line $USER1$/check_tcp -H /run/milter-greylist/milter-greylist.sock
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description milter-greylist
check_command check_milter-greylist
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

clamav-milter ※clamav-milter導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_clamav-milter' command definition
define command{
command_name check_clamav-milter
command_line $USER1$/check_tcp -H /var/run/clamav-milter/clamav-milter.socket
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description clamav-milter
check_command check_clamav-milter
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

spamass-milter ※spamass-milter導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_spamass-milter' command definition
define command{
command_name check_spamass-milter
command_line $USER1$/check_tcp -H /run/spamass-milter/postfix/sock
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description spamass-milter
check_command check_spamass-milter
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

spamd ※SpamAssassin導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_spamd' command definition
define command{
command_name check_spamd
command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 783
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description spamd
check_command check_spamd
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

Samba ※Samba導入済の場合のみ

[root@localhost ~]# yum -y install samba-client ← samba-clientインストール
[root@localhost ~]# vi /usr/local/nagios/libexec/check_disk_smb ← check_disk_smbプラグイン編集
my $smbclient= "/usr/bin/smbclient" ; ← smbclientコマンドパス設定
[root@localhost ~]# echo SambaサーバーIPアドレス※ Sambaサーバーホスト名 >> /etc/samba/lmhosts ← lmhostsSambaサーバーのIPアドレス/ホスト名を追加する
※SambaサーバーIPアドレスにループバックアドレス(127.0.0.1)は指定できない
[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_disk_smb' command definition
define command{
command_name check_disk_smb
command_line $USER1$/check_disk_smb -H $ARG1$ -s $ARG2$ -W $ARG3$ -u $ARG4$ -p $ARG5$
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description Samba
check_command check_disk_smb!Sambaサーバーホスト名!Samba共有名!Sambaワークグループ名!Sambaユーザー名!Sambaユーザーパスワード
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

MySQL ※MariaDBまたはMySQL導入済の場合のみ

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_mysql' command definition
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description MySQL
check_command check_mysql!root!MySQLのrootユーザーパスワード
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

ネットワーク使用状況

[root@localhost ~]# wget "https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=4105&cf_id=24" -O check_traffic_pnp4naios.sh ← check_traffic_pnp4naiosプラグインダウンロード
[root@localhost ~]# mv check_traffic_pnp4naios.sh /usr/local/nagios/libexec/ ← check_traffic_pnp4naiosプラグインを所定のディレクトリへ移動
[root@localhost ~]# chmod +x /usr/local/nagios/libexec/check_traffic_pnp4naios.sh ← check_traffic_pnp4naiosプラグインに実行権限付加
[root@localhost ~]# vi /usr/local/nagios/libexec/check_traffic_pnp4naios.sh ← check_traffic_pnp4naiosプラグイン編集
#DIR=/App/nagios/tmp ← 行頭に#を追加してコメントアウト
DIR=/usr/local/nagios/var ← 追加(一時ディレクトリを指定)

#if [ `cat /App/nagios/tmp/.network-$DEVICE.tmp | wc -c` -eq 0 ];then ← 行頭に#を追加してコメントアウト
if [ `cat $FILE | wc -c` -eq 0 ];then ← 追加(前回取得値格納先を変数に変更)
echo -en `date +%s`"\t" >$FILE
#echo -en `ifconfig $DEVICE | grep "RX bytes" | awk '{print $2}' | awk -F: '{print $NF}'`"\t" >>$FILE ← 行頭に#を追加してコメントアウト
#echo `ifconfig $DEVICE | grep "RX bytes" | awk '{print $6}' | awk -F: '{print $NF}'`>>$FILE ← 行頭に#を追加してコメントアウト
echo -en `ifconfig $DEVICE | grep "RX " | grep "bytes" | awk '{print $5}'`"\t" >>$FILE ← 追加(ifconfigコマンドフォーマット相違対応)
echo `ifconfig $DEVICE | grep "TX " | grep "bytes" | awk '{print $5}'`>>$FILE ← 追加(ifconfigコマンドフォーマット相違対応)
echo "This is first run"
else
New_Time=`date +%s`
#New_In=`ifconfig $DEVICE | grep "RX bytes" | awk '{print $2}' | awk -F: '{print $NF}'` ← 行頭に#を追加してコメントアウト
#New_Out=`ifconfig $DEVICE | grep "RX bytes" | awk '{print $6}' | awk -F: '{print $NF}'` ← 行頭に#を追加してコメントアウト
New_In=`ifconfig $DEVICE | grep "RX " | grep "bytes" | awk '{print $5}'` ← 追加(ifconfigコマンドフォーマット相違対応) New_Out=`ifconfig $DEVICE | grep "TX " | grep "bytes" | awk '{print $5}'` ← 追加(ifconfigコマンドフォーマット相違対応)
[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_traffic' command definition
define command{
command_name check_traffic
command_line $USER1$/check_traffic_pnp4naios.sh -i $ARG1$ -w $ARG2$ -c $ARG3$
}
[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
以下を最終行へ追加
define service{
use generic-service
host_name localhost
service_description Traffic Usage
check_command check_traffic!eth0!80000000!90000000 ← ネットワークインタフェースeth0の単位時間あたり使用量が80Mbitで警告、90Mbitで異常とする
}
[root@localhost ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動

監視サービス追加確認(自ホスト編)

http://サーバー名/nagios/へアクセスし、「サービス」で追加したサービスが表示されることを確認。

Downtime Scheduling Utility導入

日々のサーバー運用では、定時バックアップや定時ウィルススキャン等を実施しており、これらの処理を実施している時間帯はサーバーが一時的に高負荷になるため、Nagiosが警告を発してしまう場合がある。これらの処理が毎日行なわれる場合、Nagiosからの警告もほぼ毎日発生することになるため、サーバー管理者にとっては非常に煩わしい。そこで、Nagios標準の「ダウンタイム」機能を利用して、指定時間帯のサーバー監視を無視するようにする。ただし、Nagios標準の「ダウンタイム」機能では、指定した日時のサーバー監視を無視することしかできないため、Downtime Scheduling Utilityを導入して、CRONでダウンタイムの登録作業を自動化する。

Downtime Scheduling Utilityダウンロードページよりnagios_downをダウンロードしてWinSCP等でサーバーへアップロードする。

[root@localhost ~]# tar zxvf nagios_down-0.2.tar.gz ← nagios_down展開
[root@localhost ~]# cp nagios_down.php /usr/local/nagios/bin/ ← nagios_down.phpを所定のディレクトリへコピー
[root@localhost ~]# rm -f nagios_down.* ← 展開したファイルを削除
[root@localhost ~]# rm -f nagios_down-0.2.tar.gz ← ダウンロードしたファイルを削除
[root@localhost ~]# vi /usr/local/nagios/bin/nagios_down.php &color(lime){← nagios_down.php編集
define(NAGIOSCMD, "/usr/local/groundwork/nagios/var/spool/nagios.cmd");

define(NAGIOSCMD, "/usr/local/nagios/var/rw/nagios.cmd"); ← nagios.cmdパス変更
[root@localhost ~]# vi /etc/php.ini ← php設定ファイル編集
nagios_down実行時下記エラーメッセージ出力時対処
PHP Notice: Use of undefined constant NAGIOSCMD - assumed 'NAGIOSCMD' in /usr/local/nagios/bin/nagios_down.php on line 13
PHP Notice: Use of undefined constant VERSION - assumed 'VERSION' in /usr/local/nagios/bin/nagios_down.php on line 18
PHP Notice: Use of undefined constant VERDATE - assumed 'VERDATE' in /usr/local/nagios/bin/nagios_down.php on line 19
PHP Notice: Undefined variable: duration in /usr/local/nagios/bin/nagios_down.php on line 131
error_reporting = E_ALL & ~E_DEPRECATED

error_reporting = E_ALL & ~E_NOTICE ← 通知メッセージを出力しないようにする

nagios_down実行時下記エラーメッセージ出力時対処
PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings.~
[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
;date.timezone =
date.timezone = Asia/Tokyo ← 追加(デフォルトのタイムゾーン)
[root@localhost ~]# vi /usr/local/nagios/bin/nagios_down.php ← nagios_down.php編集
nagios_down実行時下記エラーメッセージ出力時対処
PHP Deprecated: Function ereg() is deprecated in /usr/local/nagios/bin/nagios_down.php on line 189
if ( ereg("^all$", $service) )

if ( preg_match("/^all$/", $service) ) ← 非推奨関数eregを推奨関数preg_matchへ変更
[root@localhost ~]# vi /etc/cron.d/nagios ← nagios_downcron設定ファイル新規作成
01 00 * * * root /usr/bin/php /usr/local/nagios/bin/nagios_down.php -h localhost -s "Current Load" -f -b "04:00 now" -e "06:00 now" -a "Nagios Admin" -c "Server Maintenance" ← 毎日4:006:00localhostCPU負荷監視を行なわない※上記は例

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-28 (火) 16:59:46