はじめに
Virtualboxでnagiosサーバー構築後、nagiosサービスを再起動した際に
エラーが出たため、調査したことをまとめました
前提条件
VirtualBoxインストール済み
nagiosサーバーとnagiosクライアントのOSはCentOS7であること
nagiosサーバーとnagiosクライアントが構築済みであること
※nagiosクライアントは、node01のホスト名で設定している。
調査手順
nagiosサーバーにSSH接続をする
nagiosサービスを再起動したら、失敗した
[root@localhost ~]# systemctl restart nagios
Job for nagios.service failed because the control process exited with error code. See "systemctl status nagios.service" and "journalctl -xe" for details.
上記のメッセージの通り、journalctl -xeコマンドでエラーメッセージを確認した
journalctl -xeのコマンドは、systemdのログ(ジャーナル)を閲覧する。
-xの意味は、説明文付きで表示、eはジャーナル末尾の最新を表示
※LPICレベル1の小豆本でコマンド確認
[root@localhost servers]# journalctl -xe
--
-- The result is failed.
5月 07 07:42:45 localhost.localdomain systemd[1]: Unit nagios.service entered failed state.
5月 07 07:42:45 localhost.localdomain systemd[1]: nagios.service failed.
5月 07 07:42:45 localhost.localdomain polkitd[632]: Unregistered Authentication Agent for unix-process:1546:123662 (system bus name :1.31, object path /org/freedesktop/PolicyKit1/Authentic
5月 07 07:45:48 localhost.localdomain polkitd[632]: Registered Authentication Agent for unix-process:1568:141936 (system bus name :1.32 [/usr/bin/pkttyagent --notify-fd 5 --fallback], obje
5月 07 07:45:48 localhost.localdomain systemd[1]: Starting Nagios Core 4.4.6...
-- Subject: Unit nagios.service has begun start-up
-- Defined-By: systemd
上記のログではエラーの原因が分からなかったため、nagiosのログを確認した
less /var/log/nagios/nagios.log
[1651876640] SERVICE ALERT: node01;PING;CRITICAL;HARD;1;PING CRITICAL - Packet loss = 100%
[1651876684] HOST ALERT: node01;DOWN;SOFT;2;PING CRITICAL - Packet loss = 100%
[1651876774] wproc: Core Worker 1416: job 2 (pid=1444) timed out. Killing it
[1651876774] wproc: CHECK job 2 from worker Core Worker 1416 timed out after 30.01s
[1651876774] wproc: host=node01; service=(null);
[1651876774] wproc: early_timeout=1; exited_ok=0; wait_status=0; error_code=62;
[1651876774] Warning: Check of host 'node01' timed out after 30.01 seconds
以下のサイトでエラーの内容を確認した。
「early_timeout=1; exited_ok=0; wait_status=0; error_code=62;」
https://support.nagios.com/forum/viewtopic.php?f=7&t=51317
「ホストチェックが失敗した場合は正常であり、ホストがダウンしているか、icmpパケットに応答していないことを示します。」サイトの情報を一部抜粋
また、ログ「HOST ALERT: node01;DOWN;SOFT;2;PING CRITICAL - Packet loss = 100%」から、nagiosサーバーがnode01サーバーと通信できていないことが分かったため、node01のコンフィグファイルを再度確認することにした。
node01のコンフィグファイルを確認した
以下からnode01のホスト定義が、コンフィグファイル(node01.cfg)に入ってないことを確認した。
※node01のコンフィグファイル(/etc/nagios/servers/node01.cfg)は、nagiosサーバーにデフォルトには存在しないため、構築の際に新規に作成したものです。
[root@localhost servers]# cat /etc/nagios/servers/node01.cfg
define service{
use generic-service
host_name node01
service_description Root Partition
check_command check_nrpe!check_disk\!20%\!10%\!/
}
define service{
use generic-service
host_name node01
service_description Current Users
check_command check_nrpe!check_users\!20\!50
}
[root@localhost servers]#
コンフィグファイル(node01.cfg)に、node01のホスト定義を追加した
[root@localhost servers]# cat /etc/nagios/servers/node01.cfg
※以下のホスト定義を追加
define host{
use linux-server
host_name node01
alias node01
address 192.168.0.3 ※node01のIPアドレスを設定
}
define service{
use generic-service
host_name node01
service_description Root Partition
check_command check_nrpe!check_disk\!20%\!10%\!/
}
define service{
use generic-service
host_name node01
service_description Current Users
check_command check_nrpe!check_users\!20\!50
}
nagiosサービスを再起動したら、成功した
systemctl restart(再起動)でエラーが出なかったのと、systemctl status(サービスの稼働状態)でエラーメッセージが含まれてなかったため、再起動が成功したと判断した。
[root@localhost servers]# systemctl restart nagios
[root@localhost servers]#
[root@localhost servers]# systemctl status nagios
● nagios.service - Nagios Core 4.4.6
Loaded: loaded (/usr/lib/systemd/system/nagios.service; disabled; vendor preset: disabled)
Active: active (running) since 土 2022-05-07 08:37:57 JST; 5s ago
Docs: https://www.nagios.org/documentation
Process: 1836 ExecStopPost=/usr/bin/rm -f /var/spool/nagios/cmd/nagios.cmd (code=exited, status=0/SUCCESS)
Process: 1833 ExecStop=/usr/bin/kill -s TERM ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 1838 ExecStart=/usr/sbin/nagios -d /etc/nagios/nagios.cfg (code=exited, status=0/SUCCESS)
Process: 1837 ExecStartPre=/usr/sbin/nagios -v /etc/nagios/nagios.cfg (code=exited, status=0/SUCCESS)
Main PID: 1841 (nagios)
CGroup: /system.slice/nagios.service
tq1841 /usr/sbin/nagios -d /etc/nagios/nagios.cfg
tq1842 /usr/sbin/nagios --worker /var/spool/nagios/cmd/nagios.qh
tq1843 /usr/sbin/nagios --worker /var/spool/nagios/cmd/nagios.qh
tq1844 /usr/sbin/nagios --worker /var/spool/nagios/cmd/nagios.qh
tq1845 /usr/sbin/nagios --worker /var/spool/nagios/cmd/nagios.qh
tq1846 /usr/sbin/nagios -d /etc/nagios/nagios.cfg
tq1847 /usr/lib64/nagios/plugins/check_ping -H 192.168.11.222 -w 3000.0,80% -c 5000.0,100% -p 5
mq1848 /usr/bin/ping -n -U -w 30 -c 5 192.168.11.222
5月 07 08:37:58 localhost.localdomain nagios[1841]: qh: Socket '/var/spool/nagios/cmd/nagios.qh' successfully initialized
5月 07 08:37:58 localhost.localdomain nagios[1841]: qh: core query handler registered
5月 07 08:37:58 localhost.localdomain nagios[1841]: qh: echo service query handler registered
5月 07 08:37:58 localhost.localdomain nagios[1841]: qh: help for the query handler registered
5月 07 08:37:58 localhost.localdomain nagios[1841]: wproc: Successfully registered manager as @wproc with query handler
5月 07 08:37:58 localhost.localdomain nagios[1841]: wproc: Registry request: name=Core Worker 1843;pid=1843
5月 07 08:37:58 localhost.localdomain nagios[1841]: wproc: Registry request: name=Core Worker 1844;pid=1844
5月 07 08:37:58 localhost.localdomain nagios[1841]: wproc: Registry request: name=Core Worker 1845;pid=1845
5月 07 08:37:58 localhost.localdomain nagios[1841]: wproc: Registry request: name=Core Worker 1842;pid=1842
5月 07 08:37:58 localhost.localdomain nagios[1841]: Successfully launched command file worker with pid 1846
[root@localhost servers]#
nagiosの画面で、監視対象のホストが監視されているか確認した
まとめ
nagiosサーバーの構築はコンフィグファイルをたくさん修正するため、設定ミスが起こりやすい。
nagiosサーバー構築後、nagiosサービス再起動時のエラーは、コンフィグファイルの設定誤りの可能性が高いです。
原因が不明な場合、先ずは、/var/log/nagios/nagios.logで詳細なログを確認し、エラーメッセージをGoogleなどの検索エンジンで調査する流れになります。