NRPEでNagios監視をレベルアップ

MRPEでNagios監視をレベルアップすることができる。万が一、インターネット越しのポートスキャンだけの監視で満足しているのであればNRPEの導入を強く推奨する。ZABBIXもエージェントのインストールは必須であり、NRPEでNagios監視が格段にレベルアップする!

AlmaLinux9で動作検証を行う。AlmaLinux9はNFSマウントしているので、正常にマウント(MOUNT_POINT="/mnt/nas")されているかのチェックをNRPEでチェックしNagios本体に伝える設定も行う。

関連記事:

dnf install epel-release -y
dnf update -y
dnf install nrpe nagios-plugins-all -y --skip-broken
dnf install -y nagios-plugins-load nagios-plugins-disk nagios-plugins-procs

インストール

vi /etc/nagios/nrpe.cfg

# NRPE サーバのポート
server_port=5666

# Nagios サーバからの接続を許可
allowed_hosts=XXX.XXX.XXX.XXX  # Nagios サーバのIPに置き換え

# チェックコマンド定義
command[check_nfs_mount]=/usr/local/bin/check_nfs_mount.sh

最低限の設定

vi /usr/local/bin/check_nfs_mount.sh

#!/bin/bash

MOUNT_POINT="/mnt/nas"

# マウントされているか確認
mount | grep -q "$MOUNT_POINT"
if [ $? -ne 0 ]; then
    echo "CRITICAL: $MOUNT_POINT is not mounted"
    exit 2
fi

# 書き込みテスト(空ファイル作成・削除)
TEST_FILE="$MOUNT_POINT/.nagios_test_$$"
touch "$TEST_FILE" 2>/dev/null
if [ $? -ne 0 ]; then
    echo "CRITICAL: Cannot write to $MOUNT_POINT"
    exit 2
fi
rm -f "$TEST_FILE"

echo "OK: $MOUNT_POINT is mounted and writable"
exit 0

NRPEのNFSチェックコマンドの作成

chmod +x /usr/local/bin/check_nfs_mount.sh

必ず実行権を付けよう

systemctl enable --now nrpe
systemctl status nrpe
firewall-cmd --add-port=5666/tcp --permanent
firewall-cmd --reload

NRPEサービス起動

NRPEの確認

sudo -u nagios /usr/local/bin/check_nfs_mount.sh

CRITICAL: /mnt/nas is not mounted となればNagiosは障害検知
OK: /mnt/nas is mounted and writable となればNagiosで正常

Naigios本体の設定

define command{
    command_name    check_nrpe_nfs
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_nfs_mount
}

define service{
    use                     generic-service
    host_name               linux-server
    service_description     NFS Mount
    check_command           check_nrpe_nfs
    check_interval          5
    retry_interval          1
}

コマンドは objects/command.cfg に、サービスは通常設定に追加して、host_nameの値をを変更

NRPE(Nagios Remote Plugin Executor)の有用性と活用方法

1. NRPE とは

NRPE(Nagios Remote Plugin Executor)は、Nagios サーバから リモート Linux/Unix サーバ上の監視プラグインを実行 するためのエージェントです。
Nagios サーバ自身では確認できないリソース(CPU、メモリ、ディスク使用率、NFSマウントの状態など)を対象ホスト側でチェックし、その結果を Nagios に返します。


2. NRPE を使うメリット

A. リモートホストの詳細監視が可能

  • CPUロード、メモリ使用率、プロセス数など、サーバ内部の状態を正確に取得できる
  • 単なる ping チェックやポート監視では分からない「ホスト内部の健康状態」を把握できる

B. プラグインの柔軟な拡張

  • 標準プラグインだけでなく、独自スクリプトを NRPE に登録可能
  • 例:NFS マウントの書き込みチェック、特定アプリケーションのステータス確認
  • Nagios サーバ側は単純に NRPE コマンドを呼ぶだけで済む

C. 安全なリモート監視

  • NRPE は TCP 5666 でのみ通信し、接続を許可する IP を限定可能
  • インターネット経由でも VPN やファイアウォールで安全に監視可能

D. システム負荷の軽減

  • 監視プラグインを対象ホスト側で実行するため、Nagios サーバに負荷をかけずに詳細監視が可能

3. NRPE の活用例

  1. 基本リソース監視
    • CPUロード、メモリ使用率、ディスク使用率、プロセス数
  2. サービス監視
    • NFSマウント状態、MySQL / PostgreSQL の稼働確認
  3. カスタムスクリプト監視
    • 独自ログ解析やアプリケーションのヘルスチェックを自動化

4. NRPE 監視の注意点

  • NRPE が落ちると、そのホストの NRPE 経由サービスはすべて UNKNOWN になる
  • ホスト監視やサービス依存関係を設定して、誤アラートを減らす
  • スクリプトは フルパス指定・exitコード・標準出力 を正しく返すことが必須
  • インターネット経由では VPN 経由が推奨

5. まとめ

NRPE は Nagios でリモート Linux/Unix サーバを詳細かつ安全に監視するための標準的手段です。
単純な ping やポート監視では得られない内部状態を取得できるため、障害検知や運用の自動化に非常に有効です。

特に、NFS マウントやアプリケーション稼働状況のチェックなど、独自監視スクリプトとの組み合わせで柔軟性が高く、Nagios を使った運用監視の幅を大きく広げることができます。