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 の活用例
- 基本リソース監視
- CPUロード、メモリ使用率、ディスク使用率、プロセス数
- サービス監視
- NFSマウント状態、MySQL / PostgreSQL の稼働確認
- カスタムスクリプト監視
- 独自ログ解析やアプリケーションのヘルスチェックを自動化
4. NRPE 監視の注意点
- NRPE が落ちると、そのホストの NRPE 経由サービスはすべて
UNKNOWN
になる - ホスト監視やサービス依存関係を設定して、誤アラートを減らす
- スクリプトは フルパス指定・exitコード・標準出力 を正しく返すことが必須
- インターネット経由では VPN 経由が推奨
5. まとめ
NRPE は Nagios でリモート Linux/Unix サーバを詳細かつ安全に監視するための標準的手段です。
単純な ping やポート監視では得られない内部状態を取得できるため、障害検知や運用の自動化に非常に有効です。
特に、NFS マウントやアプリケーション稼働状況のチェックなど、独自監視スクリプトとの組み合わせで柔軟性が高く、Nagios を使った運用監視の幅を大きく広げることができます。