NRPE 与 5666 端口
5666 是 Nagios 体系中 NRPE(Nagios Remote Plugin Executor)的默认端口。监控服务器用 check_nrpe 连接被监控主机的 5666,由本机的 NRPE 守护进程执行本地检查插件(磁盘、负载、进程、自定义脚本)并把结果回传。多这一跳的原因是纯 SNMP 或远程探测拿不到主机内部执行结果,NRPE 把『远程调度、本地执行』拆开,插件只需部署在被监控机上。
基本信息
| 服务 | NRPE(Nagios Remote Plugin Executor) |
|---|---|
| 端口/协议 | TCP 5666,可在 nrpe.cfg 用 server_port 修改 |
| 配套组件 | check_nrpe 插件 + nrpe 守护进程 + 本地插件 |
| 关键配置 | allowed_hosts 来源白名单、command 名称到命令的映射 |
| 权限要求 | 守护进程常以 nagios 用户运行;改配置需 root |
| 安全等级 | 只允许监控服务器 IP 访问 |
典型使用场景
- 采集主机内部指标:磁盘使用率、内存、负载、inode、进程数
- 执行自定义检查脚本:业务健康检查、队列积压、证书到期
- 读取需要特权的指标:通过 sudo 白名单让 NRPE 以受限提权方式执行
- 无法安装完整 agent 的老旧系统,用 NRPE 做轻量替代
- 分层监控:中心 Nagios 服务器统一调度多个机房的被监控机
手动触发与配置抽查
手动触发与配置抽查
/usr/lib/nagios/plugins/check_nrpe -H db01 -p 5666 -c check_disk # 手动触发一次检查
/usr/lib/nagios/plugins/check_nrpe -H db01 -c check_load -a 5 4 3 # 传参调用,需命令定义支持
ss -lntp | grep 5666 # 核对监听地址与进程
grep -E 'allowed_hosts|server_port|dont_blame_nrpe' /etc/nagios/nrpe.cfg # 抽查关键项
sudo systemctl restart nrpe && sudo systemctl status nrpe | head -5 # 改配置后重启并确认check_nrpe 返回读法
| 返回片段 | 含义 | 异常表现 |
|---|---|---|
| DISK OK - free space 12% | 插件退出码 0,状态正常 | 无 |
| DISK WARNING | 退出码 1,触及警告阈值 | 容量接近阈值,需排期处理 |
| DISK CRITICAL | 退出码 2,触及严重阈值 | 需立即清理或扩容 |
| Socket timeout | 连接或执行超时 | 被监控机负载过高或链路不通 |
| Connection refused | 守护未启动或端口被改 | 先看 systemctl status nrpe |
NRPE 的结果来自本地插件退出码:0 正常、1 警告、2 严重、3 未知。阈值由 check 命令行参数或插件默认值决定,调阈值改的是监控命令,而不是 NRPE 本身。
若打开 dont_blame_nrpe 允许客户端传参,而命令定义里又存在接受参数的自定义脚本,5666 就等价于一个远程命令执行接口,必须逐条审计命令定义并限制来源 IP。