Docker 中的 Nagios - NRPE 的源 IP SNAT 问题

Docker 中的 Nagios - NRPE 的源 IP SNAT 问题

Nagios Server 在 Docker 容器中运行。它通过网络内各个主机上运行的 NRPE 进行主机检查。

docker 主机是 10.10.100.100

Iptables 仅允许从 10.10.100.100 进入 tcp 5666 进行入站 NRPE 检查

来自 Nagios 的 nrpe 检查成功通过了防火墙。这证明数据包源地址确实是 10.10.100.100

NRPE配置有:

server_port=5666
allowed_hosts=10.10.100.100

当进行 NRPE 呼叫时,NRPE 系统日志显示:

Oct 20 18:42:32 dockerz01 nrpe[13382]: Allowing connections from: 10.10.100.100
Oct 20 18:42:59 dockerz01 nrpe[13411]: Host 172.20.0.2 is not allowed to talk to us!

这意味着发送到 NRPE 的数据包的源地址为 172.20.0.2(这是 Docker 容器 IP,位于 docker 桥接网络内)。如果是这样,它将如何穿过防火墙?!

这不太合理,我有点困惑

当然,通过allowed_hosts=172.20.0.2在 NRPE 配置中进行设置可以解决这个问题,但这不是持久的,也不能真正解决这个问题。

Nagios 是否发送了它的内容' 是 NRPE 数据包中的“源” IP,并且 NRPE 以此来判断“源”地址?如果是这样,那该如何改变?我这里遗漏了什么?我的目标是将 Docker 主机作为 allowed_host,因为我知道它是静态的并且不会改变。

答案1

在具有多个地址的主机上,您可以check_nrpe通过选项选择从哪一个地址发送请求-b

就你的情况来说,-b 10.10.100.100

除此之外,它只是遵循路由规则。

相关内容