CentOS8 + Nagios NRPEを利用してリモート監視の対象を追加する

Nagios
Nagiosを利用してリモート監視を行いたい。手順が知りたい。

この疑問に回答します。

システム監視を行うにはNagiosを利用するのが便利です。導入する時しか設定を行わないので、すぐに対応方法を忘れてしまいます。改めてまとめていきます。

NRPE とは

NRPE(Nagios Remote Plugin Executer)とは、Nagiosからリモートホストを監視するためのエージェントです。
nrpeを利用すると、リソース(cpu,メモリ、各サービスの状態など)など監視対象のリモートホストで任意のコマンドを実行し情報を取得することが出来ます。

Nagiosの詳細はこちらをご確認ください。

NRPE のインストール

リポジトリの追加

CentOS 8を利用しています。

最小パッケージでインストールを実施しています。必要なリポジトリの追加を行います。

# dnf -y install epel-release

NRPEの追加

nrpeと必要そうなプラグインをインストールします。

# dnf -y install nrpe nagios-plugins nagios-plugins-disk nagios-plugins-load

NRPEの設定

nrpeは、設定変更する項目が少ないです。

# vi /etc/nagios/nrpe.cfg
allowed_hosts=127.0.0.1,xxx.xxx.xxx.xxx,::1 ← NagiosサーバーのIPを登録します
dont_blame_nrpe=1 ← nrpeが引数を受け付ける

# この辺りの設定を確認します
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_disk_root]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda3
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

「allowed_hosts」パラメーター

初期設定はアクセス権で、127.0.0.1(自分自身)しかアクセスできないようになっています。

リモート監視を実施するために、
allowed_hosts」パラメーターにNagiosサーバーのIPを登録します。

「dont_blame_nrpe」パラメーター

また、nrpeは引数で閾値を設定することができます。「dont_blame_nrpe」パラメーターの値を「1」にして有効化します。

「command」パラメーター

監視するリソースを制御するパラメーターです。

commandの[]に指定する文字列(例、check_hda1)は、Nagiosサーバーと合わせる必要があります。

ディスク使用量(check_disk)

# dnf -y install nagios-plugins-disk
# /(ルート)パーティションの空きが20%で警告、10%で異常とする
command[check_disk_root]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /

MySQL(check_mysql)

# dnf -y install nrpe nagios-plugins-mysql
command[check_mysql]=/usr/lib64/nagios/plugins/check_mysql -H 127.0.0.1 -u root -p [パスワード]

NRPE設定の確認

commandパラメーターに与えた設定をコンソールから実行し動作確認を行います。

# ディスク使用量
# /usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda3
DISK OK - free space: / 23671 MiB (84.25% inode=99%);| /=4422MiB;22474;25283;0;28093

# MySQLの動作
# /usr/lib64/nagios/plugins/check_mysql -H 127.0.0.1 -u root -p [password]
Uptime: 1132831  Threads: 2  Questions: 561  Slow queries: 0  Opens: 210  Flush tables: 3  Open tables: 130  Queries per second avg: 0.000|Connections=194c;;; Open_files=2;;; Open_tables=130;;; Queries=562c;;; Questions=384c;;; Table_locks_waited=0c;;; Threads_connected=1;;; Threads_running=2;;; Uptime=1132831c;;;

NRPE設定の反映

# systemctl start nrpe
# systemctl enable nrpe

ファイアーウォール(Firewalld)の設定

Firewalld を有効にしている場合は、nrpe が利用するポートの許可が必要です。

# firewall-cmd --add-port=5666/tcp --permanent
# firewall-cmd --reload

Nagios サーバーの設定

nrpeを設定した監視対象を、Nagiosサーバーに登録しリモート監視を実行します。詳細はこちらをご確認ください。

リモート監視対象の追加

Nagiosサーバーに設定を行います。nrpeの設定を行ったリモート監視ホストではありません。

# vi /etc/nagios/servers/[ホスト名].cfg
# 監視するサービス

# ディスク使用量
define service {
    use                     generic-service
    host_name               [ホスト名]
    service_description     DISK
    check_command           check_nrpe!check_disk ← 「!」以降はNRPE側のcommondで指定した文字列
}

# MySQL
define service{
       use                  generic-service
       host_name            [ホスト名]
       service_description  MySQL
       check_command        check_nrpe!check_mysql
}
# systemctl reload nagios

関連記事 Amazonで【Nagios統合監視リファレンス】をお得に買う方法

 

 

以上、「CentOS8 + Nagios NRPEを利用してリモート監視の対象を追加する」という記事でした。