我已经在许多机器上设置了这个,ubuntu,redhat 和 centos,但在其中一台机器上遇到了问题。
我正在使用 nrpe 包。
我对 nagios 用户具有正确的权限,并且我的配置设置正确。
我发现,如果我在 nrpe.cfg 中注释掉 server_address,那么我可以通过 127.0.0.1 进行连接。但是,如果我像在其他所有机器上一样,将机器 IP 放在 server_address 中,那么我既无法从 127.0.0.1 进行连接,也无法从外部机器(位于 allowed_hosts 中)进行连接。
很高兴提供更多信息,但我已经设置了很多次,所以我知道我的权限和配置是正确的,我正在寻找一些关于为什么这个 server_address 导致问题的见解,也许是路由或 ip 问题?
谢谢
答案1
您所说的一切都是不自相矛盾的。如果您不指定server_address
,NRPE 将绑定到所有接口。因此,来自 127.0.0.1 的连接预计会起作用,您也说确实如此。
如果您确实指定了它,并且它是机器的外部地址,则 NRPE 将仅绑定到该地址,并且来自 127.0.0.1 的连接将会失败。
server_address
至于为什么无法从外部连接到它,那可能是路径问题。如果在留空时无法从客户端本身连接到客户端外部地址上的端口 5666,那就很奇怪了。但你并没有说情况就是这样。
从 NAGIOS 服务器尝试telnet client.external.ip 5666
,看看是否能得到任何事情。如果您甚至没有建立 TCP 连接,那么我们必须怀疑路径上的某处存在防火墙(包括客户端本身)。
答案2
好的,现在您面临的问题只是 nrpe 连接,在这种情况下,您只需查看您的配置文件,没有权限关系。
在服务器端:首先确保端口 5666 正在运行
$ netstat -ntlp
tcp 0 0 0.0.0.0:5666 0.0.0.0:***
如果正在运行,则问题出在您的客户端机器上。
在客户端:在里面nrpe.conf
(conf 文件路径取决于你的 Linux 版本)
检查:
server_port=5666
(nrpe端口)server_address=X.X.X.X
(需要监控的主机IP地址)allowed_hosts=X.X.X.X
(nrpe服务器IP地址)
笔记:如果您在 centos/redhat 上运行该程序,请刷新/停止您的 iptables 或允许 5666 端口通过它。