Nagios Coreでリソース監視を行う方法

投稿者: | 2020-04-22

前回は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の項目が表示され、ディスクの使用率が表示したら設定完了です。

check_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の項目が表示され、ロードアベレージが表示したら設定完了です。

check_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の項目が表示され、スワップメモリが表示したら設定完了です。

check_swaps

ログインユーザー数を監視

ログインユーザー数を監視するためには、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の項目が表示され、ログインユーザー数が表示したら設定完了です。

check_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の項目が表示され、ゾンビプロセス数、プロセス数のトータルが表示したら設定完了です。

check_procs

まとめ

  • Nagiosでリソース監視をするためにはNagiosサーバ、監視対象のホストにNRPEとNagiosプラグインが必要
  • リソース監視コマンドはnrpe経由で実行する
  • nrpe.cfgの設定はNagiosサーバ、監視対象のホストの両方に必要。

次回はテンプレート、タイムピリオドについて説明します。