はじめに
nagiosクライアントに監視設定を追加して監視できるか検証してみた。
以下のサイトからnagiosについて学びました。
infracollege
https://infracollege.vamdemicsystem.black/linux/
前提条件
VirtualBoxがインストール済みであること
nagiosサーバーの構築済みであること
nagiosサーバーの構築は以下のサイトを参考にしてください
https://qiita.com/gama1234/items/6869d23c5bc287403f78
今回監視設定するnagiosクライアントのゲストOSの作成とネットワーク設定が完了していること
ネットワーク設定は以下のサイトを参考にしてください
https://qiita.com/gama1234/items/d857fe5941ad5519f04c
監視設定追加手順
リポジトリの確認をする
以下から拡張リポジトリが追加されていないことを確認した。
[root@localhost log]# yum repolist
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.jaist.ac.jp
* extras: ftp.jaist.ac.jp
* updates: ftp.jaist.ac.jp
リポジトリー ID リポジトリー名 状態
base/7/x86_64 CentOS-7 - Base 10,072
extras/7/x86_64 CentOS-7 - Extras 509
updates/7/x86_64 CentOS-7 - Updates 3,728
repolist: 14,309
拡張リポジトリを追加する
[root@localhost log]# yum install epel-release
途中の処理記載省略
Is this ok [y/d/N]: yを入れてインストール開始する。
以下のメッセージが出てくるため、GPG検証をするため、yを入れる。
Package : centos-release-7-9.2009.0.el7.centos.x86_64 (@anaconda)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N]y
途中の処理記載省略
インストール:
epel-release.noarch 0:7-11
完了しました!
#epelのインストールを確認した
[root@localhost log]# rpm -qa | grep epel
epel-release-7-11.noarch
[root@localhost log]#
nagiosのエージェントをインストールする
先程追加したepelリポジトリからnagiosエージェント(nrpe)をインストールする。
[root@localhost log]# yum --enablerepo=epel install nrpe
[root@localhost log]# rpm -qa | grep nrpe
nrpe-4.0.3-6.el7.x86_64
#nagiosのプラグイン(監視設定)インストール
[root@localhost log]# yum --enablerepo=epel -y install nagios-plugins-{ping,disk,users,procs,load,swap,ssh}
nagiosエージェントの設定ファイルを一部修正する
修正前と修正後で比較するため、バックアップを取得する
[root@localhost nagios]# cd /etc/nagios
[root@localhost nagios]# cp -p nrpe.cfg nrpe.cfgbk
nagiosエージェントの設定ファイルを修正する
[root@localhost nagios]# vi nrpe.cfg
以下を変更した。
#1.192.168.0.2 nagiosサーバーのIPアドレスを追加(nrpeが受け入れるIPアドレス設定)
allowed_hosts=127.0.0.1,::1,192.168.0.2
#2.nrpeの監視有効化
dont_blame_nrpe=1
#3.各プラグインの設定に引数は変数を設定
以下はコメントアウトした
#command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
#command[check_load]=/usr/lib64/nagios/plugins/check_load -r -w .15,.10,.05 -c .30,.25,.20
#command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
#command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z
#command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200
以下を追加
command[check_users]=/usr/lib64/nagios/plugins/check_users -w $ARG1$ -c $ARG2$
command[check_load]=/usr/lib64/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
command[check_procs]=/usr/lib64/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
修正前と修正後の差分比較
上記の1~3のみ変更されていることを確認した
[root@localhost nagios]# 修正後と修正前の差分
[root@localhost nagios]# sdiff -s nrpe.cfg nrpe.cfgbk
allowed_hosts=127.0.0.1,::1,192.168.0.2 | allowed_hosts=127.0.0.1,::1
dont_blame_nrpe=1 | dont_blame_nrpe=0
#command[check_users]=/usr/lib64/nagios/plugins/check_users - | command[check_users]=/usr/lib64/nagios/plugins/check_users -w
#command[check_load]=/usr/lib64/nagios/plugins/check_load -r | command[check_load]=/usr/lib64/nagios/plugins/check_load -r -
#command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w | command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 2
#command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_ | command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_p
#command[check_total_procs]=/usr/lib64/nagios/plugins/check_p | command[check_total_procs]=/usr/lib64/nagios/plugins/check_pr
|
command[check_users]=/usr/lib64/nagios/plugins/check_users -w <
command[check_load]=/usr/lib64/nagios/plugins/check_load -w $ <
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w $ <
command[check_procs]=/usr/lib64/nagios/plugins/check_procs -w <
nagiosエージェントの再起動をする
#nrpeのサービスを再起動
[root@localhost nagios]# systemctl restart nrpe
#nrpeのサービスの状態確認
[root@localhost nagios]# systemctl status nrpe
● nrpe.service - Nagios Remote Program Executor
Loaded: loaded (/usr/lib/systemd/system/nrpe.service; disabled; vendor preset: disabled)
Active: active (running) since 木 2022-05-05 09:34:50 JST; 5s ago
Docs: http://www.nagios.org/documentation
Main PID: 9346 (nrpe)
CGroup: /system.slice/nrpe.service
mq9346 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -f
途中の処理記載省略
#nrpeのサービスを自動起動に設定
[root@localhost nagios]# systemctl enable nrpe
Created symlink from /etc/systemd/system/multi-user.target.wants/nrpe.service to /usr/lib/systemd/system/nrpe.service.
nagios通信用のポートを許可する
[root@localhost nagios]# firewall-cmd --add-port=5666/tcp --permanent
success
[root@localhost nagios]# firewall-cmd --reload
success
[root@localhost nagios]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client ssh
ports: 5666/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
nagiosサーバー側の設定
nagiosの監視するホスト設定
[root@localhost nagios]# cd /etc/nagios
[root@localhost nagios]# cp -p nagios.cfg nagios.cfgbk
#1.nagios.cfgを開き、cfg_dir=/etc/nagios/serversのコメントアウトを削除
[root@localhost nagios]# vi nagios.cfg
#2.nagios.cfgの修正後と修正前の差分確認
[root@localhost nagios]# sdiff -s nagios.cfg nagios.cfgbk
cfg_dir=/etc/nagios/servers | #cfg_dir=/etc/nagios/servers
#3./etc/nagios/serversのフォルダ作成
[root@localhost nagios]# ls -ltr /etc/nagios/servers
ls: /etc/nagios/servers にアクセスできません: そのようなファイルやディレクトリはありません
[root@localhost nagios]# mkdir /etc/nagios/servers
[root@localhost nagios]#
[root@localhost nagios]# ls -ltr /etc/nagios/servers
合計 0
#4.作成したフォルダの所有ユーザーとグループをnagiosに変更
chown nagios.nagios /etc/nagios/servers/
#5.権限を変更
[root@localhost nagios]# chmod 750 /etc/nagios/servers
[root@localhost nagios]# ls -ld /etc/nagios/servers
drwxr-x--- 2 nagios nagios 6 5月 5 10:01 /etc/nagios/servers <
nagiosエージェント向けにping監視追加
必ず既にある設定値を変更する場合は、コンフィグファイルのバックアップを取得してください
nagiosの文法チェックに引っかかった時や問題が発生した際に元のファイルに戻すためです。
[root@localhost nagios]# vi /etc/nagios/servers/node01.cfg
define host{
use linux-server
host_name node01
alias node01
address 192.168.0.3 ※nagiosエージェントのIPアドレスを追加
}
define service{
use generic-service
host_name node01
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
#所有ユーザーとグループを設定する
[root@localhost nagios]#chown nagios.nagios /etc/nagios/servers/node01.cfg
nagiosサービスの再起動前にnagiosの文法チェックをする
文法チェックせずにnagiosサービスを再起動した際に、文法に間違いがあれば
nagiosサービスの起動に失敗して監視自体が停止してしまいます。
※cfgの拡張子が含まれるファイルは、オブジェクトファイル(監視対象)と認識されます。
バックアップファイルはcfgbkYYYYMMDD(バックアップ日)みたいに付けるのも良いです。
nagiosの文法チェックは、nagiosのメイン設定ファイル(/etc/nagios/nagios.cfg)を指定して文法チェックをする
メインファイルの文法チェックをすると、nagiosのすべてのコンフィグファイルの文法チェックがされる様です。
[root@localhost nagios]# nagios -v /etc/nagios/nagios.cfg
Nagios Core 4.4.9
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2022-11-16
License: GPL
Website: https://www.nagios.org
Reading configuration data...
Read main config file okay...
Read object config files okay...
Running pre-flight check on configuration data...
Checking objects...
Checked 8 services.
Checked 1 hosts.
Checked 1 host groups.
Checked 0 service groups.
Checked 1 contacts.
Checked 1 contact groups.
Checked 24 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 1 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors: 0
設定ファイルを反映させるため、nagiosサービスを再起動する
[root@localhost nagios]#systemctl restart nagios <
nagiosサービスのステータスをチェックする
active (running)であることを確認する。
active以外の場合は、本番環境の場合は影響が出るため変更前の設定ファイルに戻し、再度nagiosサービスを再起動する
[root@localhost nagios]#systemctl status nagios
● nagios.service - Nagios Core 4.4.9
Loaded: loaded (/usr/lib/systemd/system/nagios.service; enabled; vendor preset: disabled)
Active: active (running) since 土 2023-01-14 23:37:42 JST; 2s ago
Docs: https://www.nagios.org/documentation
Process: 1890 ExecStopPost=/usr/bin/rm -f /var/spool/nagios/cmd/nagios.cmd (code=exited, status=0/SUCCESS)
Process: 1870 ExecStop=/usr/bin/kill -s TERM ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 2352 ExecStart=/usr/sbin/nagios -d /etc/nagios/nagios.cfg (code=exited, status=0/SUCCESS)
Process: 2351 ExecStartPre=/usr/sbin/nagios -v /etc/nagios/nagios.cfg (code=exited, status=0/SUCCESS)
Main PID: 2355 (nagios)
CGroup: /system.slice/nagios.service
tq2355 /usr/sbin/nagios -d /etc/nagios/nagios.cfg
tq2357 /usr/sbin/nagios --worker /var/spool/nagios/cmd/nagios.qh
tq2358 /usr/sbin/nagios --worker /var/spool/nagios/cmd/nagios.qh
tq2359 /usr/sbin/nagios --worker /var/spool/nagios/cmd/nagios.qh
tq2360 /usr/sbin/nagios --worker /var/spool/nagios/cmd/nagios.qh
tq2361 /usr/sbin/nagios -d /etc/nagios/nagios.cfg
tq2362 /usr/lib64/nagios/plugins/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5
mq2363 /usr/bin/ping -n -U -w 30 -c 5 127.0.0.1
1月 14 23:37:42 localhost.localdomain nagios[2355]: qh: Socket '/var/spool/nagios/cmd/nagios.qh' successfully initialized
1月 14 23:37:42 localhost.localdomain nagios[2355]: qh: core query handler registered
1月 14 23:37:42 localhost.localdomain nagios[2355]: qh: echo service query handler registered
1月 14 23:37:42 localhost.localdomain nagios[2355]: qh: help for the query handler registered
1月 14 23:37:42 localhost.localdomain nagios[2355]: wproc: Successfully registered manager as @wproc with query handler
1月 14 23:37:42 localhost.localdomain nagios[2355]: wproc: Registry request: name=Core Worker 2357;pid=2357
1月 14 23:37:42 localhost.localdomain nagios[2355]: wproc: Registry request: name=Core Worker 2358;pid=2358
1月 14 23:37:42 localhost.localdomain nagios[2355]: wproc: Registry request: name=Core Worker 2359;pid=2359
1月 14 23:37:42 localhost.localdomain nagios[2355]: wproc: Registry request: name=Core Worker 2360;pid=2360
1月 14 23:37:42 localhost.localdomain nagios[2355]: Successfully launched command file worker with pid 2361 <
nagiosのnrpe設定
[root@localhost ~]# yum --enablerepo=epel -y install nagios-plugins-nrpe
[root@localhost objects]# cd /etc/nagios/objects
[root@localhost objects]# cp -p commands.cfg commands.cfgbk
#nrpeを使用してリモート監視ホスト監視(linux)のプラグインを追加
[root@localhost objects]# vi commands.cfg
229行目に以下を追加する
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
[root@localhost objects]# sdiff -s commands.cfg commands.cfgbk
define command{ <
command_name check_nrpe <
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ - <
}
#設定ファイルを反映させるため、nagiosサービスを再起動する。
[root@localhost nagios]#systemctl restart nagios