CentOS7下NRPE插件安装后Nagios服务器与远程代理连接失败及xinetd启动异常问题排查求助
看起来你在CentOS7上部署NRPE后碰到了两个棘手的问题:先是Nagios服务器连接远程代理时被重置,修改xinetd配置后又遇到了端口占用导致服务启动失败。我来一步步帮你排查解决:
一、先搞定xinetd启动报错(Address already in use)
这个错误的核心原因是5666端口已经被其他进程占用了,最常见的情况是NRPE已经以「独立服务模式」在运行,而不是通过xinetd托管。
第一步:检查端口占用情况
执行下面的命令,看看哪个进程在占用5666端口:ss -tulpn | grep 5666 # 旧版CentOS可以用netstat: # netstat -tulpn | grep 5666如果输出里显示
nrpe进程,那就坐实了——你之前可能把NRPE配置成了独立运行模式。第二步:停止独立运行的NRPE服务
根据你的服务管理方式选择命令:- 用systemd的情况:
systemctl stop nrpe systemctl disable nrpe # 避免开机自动启动独立服务 - 用传统init脚本的情况:
/etc/init.d/nrpe stop
- 用systemd的情况:
第三步:验证端口释放并重启xinetd
再次执行ss -tulpn | grep 5666,确认没有进程占用5666端口后,重启xinetd:systemctl restart xinetd然后用
systemctl status xinetd查看状态,应该能看到nrpe服务正常启动了。
二、修复NRPE连接被重置的问题
解决完xinetd的启动问题后,我们回头处理最初的连接错误,需要检查几个关键配置:
1. 修正xinetd的only_from格式
你配置里的only_from = 127.0.0.1 ::1 {server_IP}格式不对——花括号是占位符,要替换成你实际的Nagios服务器IP,并且多个IP用空格分隔。比如你的Nagios服务器IP是192.168.50.10,正确的配置应该是:
only_from = 127.0.0.1 ::1 192.168.50.10
修改后记得重启xinetd生效。
2. 配置防火墙放行5666端口
CentOS7默认用firewalld,必须允许Nagios服务器的IP访问5666端口:
- 临时放行(重启后失效):
firewall-cmd --add-port=5666/tcp --source=192.168.50.10 - 永久放行:
firewall-cmd --add-port=5666/tcp --source=192.168.50.10 --permanent firewall-cmd --reload # 重新加载规则
如果你的系统用的是iptables,添加规则:
iptables -A INPUT -p tcp -s 192.168.50.10 --dport 5666 -j ACCEPT service iptables save
3. 同步NRPE配置文件的allowed_hosts
别漏了/usr/local/nagios/etc/nrpe.cfg里的allowed_hosts字段,这里也需要添加Nagios服务器的IP,格式是用逗号分隔:
allowed_hosts=127.0.0.1,::1,192.168.50.10
虽然xinetd的only_from已经做了一层过滤,但NRPE自身的配置也会做二次验证,两边保持一致更稳妥。
三、最后测试连接
等所有配置都搞定后,回到Nagios服务器,重新执行测试命令:
/usr/local/nagios/libexec/check_nrpe -H 192.168.50.5
如果成功,你会看到类似NRPE v4.1.0的版本信息,说明连接正常了。
内容的提问来源于stack exchange,提问作者Michael

