我为我的公司(一家 ISP)部署了 Nagios Core 解决方案,以监控客户的网络设备(主机)。
它作为在物理服务器上运行的虚拟机在 CentOS 7 上运行。
然而,当使用 VS Code 通过 SSH 连接时,我经常与服务器断开连接,每 5 分钟或更短时间一次,Nagios 会提醒我是否有网络设备被认为已关闭,但实际上并未关闭。
我还注意到,在一分钟的范围内,应该在该分钟内运行的每个主机检查都会失败,而下一分钟的相同检查会成功。这种情况每小时可能发生几次,并且会堵塞 Nagios 的日志文件。
因此,我遵循了有关如何解决 CentOS 上的基本网络问题的指南:
https://www.redhat.com/sysadmin/beginners-guide-network-troubleshooting-linux
然而,似乎没有什么异常。
现在是神秘的部分:当从运行 Windows 10 的电脑打开 cmd 时,通过 ssh 连接,输入:
# ssh user@server_address
然后输入我的密码并最后运行:
# ping gateway_address
因此,换句话说,从 cmd 永久 ping 服务器的物理网关,这意味着服务器永久 ping 其网关,当我通过 VS Code SSH 在服务器上工作时,我不再断开连接,此外,Nagios 的主机检查恢复正常并发出警报只有当主机确实宕机时我才会这样做。
如果我从 cmd 停止 ping,问题就会再次出现,但只要 ping 正在运行,问题就会消失。
我尝试使用:
# nohup ping gateway_address &
命令在后台永久运行 ping,但只要不打开 cmd 主动 ping 网关,问题仍然存在。
对于网络架构来说,服务器必须通过该网关才能到达Nagios监控的主机。
您知道发生了什么以及我该如何解决它吗?