前回はNagios Coreで様々なポートのサービスを監視する方法について説明しました。今回はNagiosを使用してディスクの容量やメモリの使用率等を監視する方法について説明します。
NRPEのインストール
Nagiosのリソース監視は、NRPEを経由しコマンドを実行することで、監視対象のホストからリソースの値を取得します。そのため、Nagiosホストと監視対象のホストにコマンドを実行するユーザーの作成、NRPE、Nagiosプラグインのインストールが必要となります。
ユーザーの作成、Nagiosプラグインのインストール方法については、Nagios Coreインストールの回で説明しているため下記の記事を参照してください。
・CentOS8にNagios Coreをインストールする方法
https://www.kdkwakaba.com/archives/468それでは、NRPEのインストールから入ります。
・ソースファイルのダウンロード、コンパイル、インストール
# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
# tar zxf nrpe-3.2.1.tar.gz
# cd nrpe-3.2.1
# ./configure
# make all
# make install
・設定ファイル、Unitファイルのインストール
# make install-config
# make install-init
NRPEのインストール後、設定ファイルに許可するホストのIPアドレスを設定します。
# vi /usr/local/nagios/etc/nrpe.cfg
■nrpe.cfg(Nagiosサーバ)
--------------------------------------------------
# 許可するホストを設定
allowed_hosts=127.0.0.1,::1,<監視対象のホストのIPアドレス>
# コマンドライン引数を無効にする
dont_blame_nrpe=1
--------------------------------------------------
■nrpe.cfg(監視対象のホスト)
--------------------------------------------------
# 許可するホストを設定
allowed_hosts=127.0.0.1,::1,<NagiosサーバのIPアドレス>
# コマンドライン引数を無効にする
dont_blame_nrpe=1
--------------------------------------------------
nrpe.cfgの設定後、check_nrpeコマンドの定義をします。
# vi /usr/local/nagios/etc/objects/commands.cfg
■commands.cfg
--------------------------------------------------
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
--------------------------------------------------
コマンド定義後、firewallの設定をします。NRPEはTCPの5666番を使用するため、5666番ポートを許可します。
・TCPの5666番を許可する
# firewall-cmd --add-port 5666/tcp --zone=public --permanent
# firewall-cmd --reload
firewallの許可後、NRPEを起動します。再起動後の自動起動も設定します。
# systemctl start nrpe
# systemctl enable nrpe
起動後、check_nrpeコマンドを実行し、NRPEのバージョンが表示されればインストール完了です。
# cd /usr/local/nagios/libexec
・Nagiosサーバ
# ./check_nrpe -H <監視対象のホストのIPアドレス>
NRPE v3.2.1
・監視対象のホスト
# ./check_nrpe -H <NagiosサーバのIPアドレス>
NRPE v3.2.1
ディスクの使用率を監視
ディスクの使用率を監視するためには、NRPE経由でcheck_diskコマンドを使用します。
初めにNagiosサーバと監視対象のホストのnrpe.cfgを編集します。
# vi /usr/local/nagios/etc/nrpe.cfg
■nrpe.cfg(Nagiosサーバ、監視対象のホスト)
--------------------------------------------------
・変更前
#command[check_disk]=/usr/local/nagios/libexec/check_disk $ARG1$
・変更後
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 30% -c 20%
--------------------------------------------------
check_diskコマンドのオプションについては下記の通りとなります。
-w | WARNINGの閾値を設定するオプション。パーセンテージで指定し、空き容量が閾値より下回った際にWARNINGとなる。今回は30%で設定。 |
---|---|
-c | CRITICALの閾値を設定するオプション。パーセンテージで指定し、空き容量が閾値より下回った際にCRITICALとなる。今回は20%で設定。 |
nrpe.cfg編集後、Nagiosサーバにてディスクの使用率を監視するサービスの定義をします。
# vi /usr/local/nagios/etc/server/CentOS8-test1.cfg
■CentOS8-test1.cfg
--------------------------------------------------
# ディスクの使用率を監視
define service {
use generic-service
host_name CentOS8-test1
service_description DISK
check_command check_nrpe!check_disk
}
--------------------------------------------------
nrpe.cfg、サービスの定義完了後、NRPEとNagiosを再起動します。
・NRPEを再起動(Nagiosサーバ、監視対象のホスト)
# systemctl restart nrpe
・Nagiosを再起動(Nagiosサーバ)
# systemctl restart nagios
再起動後、NagiosのServices画面よりDISKの項目が表示され、ディスクの使用率が表示したら設定完了です。

ロードアベレージを監視
ロードアベレージを監視するためには、NRPE経由でcheck_loadコマンドを使用します。check_loadについては、nrpe.cfgにデフォルトの定義があるため、こちらを使用します。参考としてnrpe.cfgの値を掲載します。
# vi /usr/local/nagios/etc/nrpe.cfg
■nrpe.cfg(Nagiosサーバ、監視対象のホスト)
--------------------------------------------------
# check_loadの定義
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .30,.25,.20
--------------------------------------------------
check_loadコマンドのオプションについては下記の通りとなります。
-r | CPUの数で割った平均値を表示する。 |
---|---|
-w | WARNINGの閾値を設定するオプション。1分、5分、15分の順に閾値を設定する。小数点の場合は先頭の0を省略できる。今回は0.15、0.10、0.05で定義。 |
-c | CRITICALの閾値を設定するオプション。1分、5分、15分の順に閾値を設定する。小数点の場合は先頭の0を省略できる。今回は0.30、0.25、0.20で定義。 |
nrpe.cfg編集後、Nagiosサーバでロードアベレージを監視するサービスの定義をします。
# vi /usr/local/nagios/etc/server/CentOS8-test1.cfg
■CentOS8-test1.cfg
--------------------------------------------------
# ロードアベレージを監視
define service {
use generic-service
host_name CentOS8-test1
service_description LOAD
check_command check_nrpe!check_load
}
--------------------------------------------------
サービスの定義後、Nagiosを再起動します。
・Nagiosを再起動(Nagiosサーバ)
# systemctl restart nagios
再起動後、NagiosのServices画面よりLOADの項目が表示され、ロードアベレージが表示したら設定完了です。

スワップメモリを監視
スワップメモリを監視するためには、NRPE経由でcheck_swapコマンドを使用します。
初めにNagiosホストと監視対象のホストのnrpe.cfgを編集します。
# vi /usr/local/nagios/etc/nrpe.cfg
■nrpe.cfg(Nagiosサーバ、監視対象のホスト)
--------------------------------------------------
・変更前
#command[check_swap]=/usr/local/nagios/libexec/check_swap $ARG1$
・変更後
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 50% -c 30%
--------------------------------------------------
check_swapコマンドのオプションについては下記の通りとなります。
-w | WARNINGの閾値を設定するオプション。空き容量をパーセンテージで設定する。今回は31%以上、50%以下になるとWARNINGとなる。 |
---|---|
-c | CRITICALの閾値を設定するオプション。空き容量をパーセンテージで設定する。今回は30%以下になるとCRITICALとなる。 |
nrpe.cfg編集後、Nagiosサーバでスワップメモリを監視するサービスの定義をします。
# vi /usr/local/nagios/etc/server/CentOS8-test1.cfg
■CentOS8-test1.cfg
--------------------------------------------------
# スワップメモリを監視
define service {
use generic-service
host_name CentOS8-test1
service_description SWAP MEMORY
check_command check_nrpe!check_swap
}
--------------------------------------------------
nrpe.cfg、サービス定義完了後、NRPEとNagiosを再起動します。
・NRPEを再起動(Nagiosサーバ、監視対象のホスト)
# systemctl restart nrpe
・Nagiosを再起動(Nagiosサーバ)
# systemctl restart nagios
再起動後、NagiosのServices画面よりSWAP MEMORYの項目が表示され、スワップメモリが表示したら設定完了です。

ログインユーザー数を監視
ログインユーザー数を監視するためには、NRPE経由でcheck_usersコマンドを使用します。check_usersについては、nrpe.cfgにデフォルトの定義があるため、こちらを使用します。参考としてnrpe.cfgの値を掲載します。
# vi /usr/local/nagios/etc/nrpe.cfg
■nrpe.cfg(Nagiosサーバ、監視対象のホスト)
--------------------------------------------------
# check_usersの定義
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
--------------------------------------------------
check_usersコマンドのオプションについては下記の通りとなります。
-w | WARNINGの閾値を設定するオプション。同時にログインするユーザー数を指定する。今回は6人以上10人未満でWARNINGとなる。 |
---|---|
-c | CRITICALの閾値を設定するオプション。同時にログインするユーザー数を指定する。10人以上でCRITICALとなる。 |
nrpe.cfg編集後、Nagiosサーバでログインユーザー数を監視するサービスの定義をします。
# vi /usr/local/nagios/etc/server/CentOS8-test1.cfg
■CentOS8-test1.cfg
--------------------------------------------------
# ログインユーザー数を監視
define service {
use generic-service
host_name CentOS8-test1
service_description LOGIN USERS
check_command check_nrpe!check_users
}
--------------------------------------------------
サービスの定義後、Nagiosを再起動します。
・Nagiosを再起動(Nagiosサーバ)
# systemctl restart nagios
再起動後、NagiosのServices画面よりLOGIN USERSの項目が表示され、ログインユーザー数が表示したら設定完了です。

プロセスの監視
プロセスを監視するためには、NRPE経由でcheck_procsコマンドを使用します。様々なプロセス監視方法がありますが、今回はnrpe.cfgにデフォルトの定義があるゾンビプロセスの監視とプロセス数のトータルの監視を行います。
# vi /usr/local/nagios/etc/nrpe.cfg
■nrpe.cfg(Nagiosサーバ、監視対象のホスト)
--------------------------------------------------
# ゾンビプロセスの監視コマンドの定義
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
# プロセス数のトータルの監視コマンドの定義
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
--------------------------------------------------
check_procsコマンドのオプションについては下記の通りとなります。
-w | WARNINGの閾値を設定するオプション。プロセス数を設定する。ゾンビプロセスの監視では6以上10未満でWARNING、プロセス数のトータルでは151以上200未満でWARNINGとなる。 | -c | CRITICALの閾値を設定するオプション。プロセス数を設定する。ゾンビプロセスの監視では11以上でCRITICAL、プロセス数のトータルでは200以上でCRITICALとなる。 |
---|---|
-s | psコマンドで表示されるプロセス状態コードを指定するオプション。今回はゾンビプロセスのZを指定。 |
nrpe.cfg編集後、Nagiosサーバでプロセス数を監視するサービスの定義をします。
# vi /usr/local/nagios/etc/server/CentOS8-test1.cfg
■CentOS8-test1.cfg
--------------------------------------------------
# ゾンビプロセス数を監視
define service {
use generic-service
host_name CentOS8-test1
service_description ZOMBI PROCESS
check_command check_nrpe!check_zombie_procs
}
# プロセス数のトータルを監視
define service {
use generic-service
host_name CentOS8-test1
service_description TOTAL PROCESS
check_command check_nrpe!check_total_procs
}
--------------------------------------------------
サービスの定義後、Nagiosを再起動します。
・Nagiosを再起動(Nagiosサーバ)
# systemctl restart nagios
再起動後、NagiosのServices画面よりZOMBI PROCESSとTOTAL PROCESSの項目が表示され、ゾンビプロセス数、プロセス数のトータルが表示したら設定完了です。

まとめ
- Nagiosでリソース監視をするためにはNagiosサーバ、監視対象のホストにNRPEとNagiosプラグインが必要
- リソース監視コマンドはnrpe経由で実行する
- nrpe.cfgの設定はNagiosサーバ、監視対象のホストの両方に必要。
次回はテンプレート、タイムピリオドについて説明します。