0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VirtualBox nagiosクライアントの監視設定

Last updated at Posted at 2022-05-07

はじめに

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

監視設定追加手順

nagiosクライアントの監視追加前のエビデンス
image.png

リポジトリの確認をする

以下から拡張リポジトリが追加されていないことを確認した。

[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                                       

nagiosの監視が面からnode01が監視されていることを確認

image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?