我目前正在使用 New Relic 的性能监控服务。到目前为止,它运行良好,只是我希望某些事情能够自动化。当性能不佳或我的网站瘫痪时,我基本上只会收到一封电子邮件通知。如果网站瘫痪,我想尝试重新启动应用程序服务器(必要时终止进程,有时确实如此)。如果一段时间后这不起作用,请尝试重新启动整个机器……我甚至付费购买了 PagerDuty,它可以解析 New Relic 的电子邮件通知,并给我打电话或发短信告知通知升级程序。但它无法运行脚本……
这似乎会是任何网站监控工具的热门功能...有什么好用的吗?
答案1
如果托管解决方案可以,警报狐可以在发生错误时运行脚本(“宏”)。例如,这些宏可以登录到您的 Web 主机的配置面板并触发重新启动。
答案2
托管监控服务(例如 New Relic)运行用户提供的脚本的问题在于安全问题 —— 除非它经过很好的沙盒保护,否则脚本可能会对监控服务的系统造成不利影响。
他们真正能够安全地做到这一点的唯一方法是设置一组非常有限的安全反应。最常见的方法就是 HTTP 回调,其中监控服务会向您选择的 URL 发送 POST,其中包含发生的情况的数据,您可以对此做出反应并执行任何您需要的操作。当然,这样做的缺点是您必须在基础架构中运行另一项服务来接收这些事件并采取行动。
我在 Google 上快速搜索 New Relic 时没有找到任何可以解决此类问题的内容;他们很可能不处理此类问题,如果您不使用其他监控服务,电子邮件/短信通知就是最好的选择。
正是由于这些原因,我更喜欢运行自己的监控基础设施——像 New Relic 这样的设置可能对他们在监控方面提供的专业知识很有用,比如,Rails 应用程序性能,但对于管理基础设施本身,我将其保留在内部。
答案3
嗯,Nagios 脚本通常只向 Nagios 报告状态,但是当它们必须报告警告或失败时,没有什么可以阻止它们做更多的事情。
编辑:从技术上讲,这是可行的,而且很容易做到,但可能会产生无法预料的后果。更好的解决方案是配置 Nagios 来解决事件处理程序基础结构的问题。
答案4
海狮可以运行任何命令行工具/脚本。这为您提供了无限的可能性。例如,您可以编写自己的 bash 脚本并让 GNU Mailutils 发送电子邮件通知。它还针对最常用的指标(如 CPU、内存、平均负载等)发出警报。