我有一个 24/7 系统,其中有几个半自主节点(嵌入式 x86 minipc),运行 Ubuntu jaunty(9.04)。它们每个都需要网络连接来收集信息以进行操作。如果某些服务因某种原因关闭,我会使用 monit 重新启动它们,并使用 Nagios 3 监控每个节点,但我不知道在 Linux 下评估(自动)系统健全性的好方法。更具体地说,如果网络连接出现问题(例如,网络驱动程序无法正常工作),每个节点如何评估其“健康状况”以确定是否需要重新启动(抱歉没有更具体)?你们对此有什么看法/经验吗?
提前致谢!
答案1
我不知道在什么情况下需要自动重启,并且可以从机器本身启动。在最坏的情况下,您可以设置一个看门狗,如果机器卡住了,它会重新启动机器。不过在大多数情况下,最好只是重新启动服务。如果你想要一种智能的方式来做到这一点,我会使用 puppet 来管理文件、包和服务之间的依赖关系。
答案2
你们对此有什么看法/经验吗?
我认为您正在期待并玩弄通常与 Windows 相关的黑魔法。
我从未见过可以通过重启可靠修复的连接问题,对此我非常怀疑。即使它能提供临时修复,我也希望在将机器重新投入使用之前,非常确定原因和解决方案。
答案3
进行功能测试(您可以编写 Nagios 检查,如果没有人可用,如果您现在有一些脚本语言,这并不难)。测试您的服务是否可以从 Nagios 机器访问并且正常运行。
节点本身可以尝试访问您的 Nagios 机器,如果无法访问,则只需重新启动,但首先可能更倾向于在具有良好驱动程序的硬件上运行......
答案4
只需关闭界面然后再打开怎么样?这确实可以解决大多数需要重启才能解决的问题。
只需从 cron 执行此操作,或使用脚本检查连接性,如果出现问题,则关闭并打开接口,如果这不能解决问题,请重新启动。