如何设置监视器来检查外部服务器的可达性

如何设置监视器来检查外部服务器的可达性

在我们的生产网络中,我们会调用位于不同位置的其他服务器。我们的一些服务还会调用托管在其他目的地的其他服务器。例如,我们的邮件服务器位于美国,而我们的代理服务器(在其中一台服务器上运行的 squid 代理软件)位于印度。

有时,印度的服务器无法连接到美国服务器。但美国服务器绝对可以通过其他网络连接访问。虽然我们怀疑这里的数据中心网络存在问题,但我们希望在问题发生时立即意识到问题。有没有办法从我们的代理服务器监控这些外部服务器的可达性?并且,当任何服务器无法访问时提醒我们。

虽然可以使用 ping/curl/wget 编写一些代码,但我真的想知道是否已经有可以解决这个问题的方法。

答案1

在编写脚本来测试连接时,调度、交叉引用和报告变得非常复杂,非常很快。我建议运行一个监控平台,它允许你实现自己的脚本 - 我使用纳吉奥斯为此 - 它非常容易与您自己的代码集成。

可以使用 ping/curl/wget 编写一些代码,我真的很想知道是否已经有可以解决这个问题的方法

尽管 nagios 确实有预先编写的探测器,但包装现有功能所需的工作量却很小。

答案2

我曾经写过一个“相当”广泛的监控应用程序,它结合了 ping、curl、应用程序 api 等来检查服务器状态。所以你可以自己写一个脚本/应用程序。它最初运行良好,但如果不经常维护,它就会受到影响并成为一种麻烦。(我曾经在法国度假时在晚上收到了 150 条自动短信……)。显然,如果你把它保持在小规模,它就不会腐烂得那么厉害。

更好的选择是安装一个支持良好的框架,如 nagios 或使用 SNMP 的框架。或者使用外部服务。我使用免费的监控为我的个人物品提供服务。它是免费增值服务,因此其商业产品可能更适合生产。但如果这在您的防火墙内,它们可能不适合。

答案3

有很多好的监控系统可用,例如扎比克斯纳吉奥斯

但对于您的情况,利用代理的简单 curl 或 wget cron 作业应该足以解决您的眼前问题。

编辑:澄清一下,我的意思是您应该在生产网络中的某个地方运行 cron 作业。这样,当您与印度的链接断开时,或者当代理无法访问您所需的服务时,您都会收到警报。

相关内容