我的博客是一个自定义的 ruby/rack 应用程序,每隔几周就会随机崩溃一次。我有时几天都没有注意到,如果发生这种情况,我希望立即得到通知。
最好的方法是什么?我正在运行 Centos 5.3、Nginx、Passenger、Rack 等。
我已经考虑想办法通过电子邮件向自己发送错误日志的尾部,因为这将帮助我抓住一切,而不仅仅是一个应用程序(它会告诉我丢失的链接等)。有没有简单的方法可以做到这一点?
谢谢!
我的博客是一个自定义的 ruby/rack 应用程序,每隔几周就会随机崩溃一次。我有时几天都没有注意到,如果发生这种情况,我希望立即得到通知。
最好的方法是什么?我正在运行 Centos 5.3、Nginx、Passenger、Rack 等。
我已经考虑想办法通过电子邮件向自己发送错误日志的尾部,因为这将帮助我抓住一切,而不仅仅是一个应用程序(它会告诉我丢失的链接等)。有没有简单的方法可以做到这一点?
谢谢!
如果您在网站出现故障时需要警报,您应该考虑使用在线通知服务:他们会看到外部视角。
如果您从“您自己的盒子内部”进行监控,如果它完全崩溃或失去其网络连接,您将永远不会收到一封电子邮件,因为您的脚本将无法再运行或提醒您。
Bello或Pingdom都提供非常适合您入门的免费帐户。
更多服务列在谁能推荐网站监控服务?
我很惊讶没有人提到Nagios。它非常强大,正常运行时间百分比,通过电子邮件/即时消息通知,可以在停机时运行脚本等。它可能是最好的。
查看 AreMySitesUp ( http://aremysitesup.com ) 和 Pingdom。两者都有免费选项,并且会在您的网站关闭时发送电子邮件和短信。AreMySitesUp 也有一个 iPhone 应用程序。
你可以使用上帝:god (dot) rubyforge [dot] org
您在另一个可以运行脚本的位置有服务器吗?
这些人将免费(每 30 分钟)监控您的页面(最多 2 个网址)http host-tracker.com order-page
您只需编写一个使用 wget 的 shell 脚本,然后根据响应代码确定页面是否响应,即可获得基本的连接测试。
这是一个可以扩展的非常基本的示例,但是如果您只是在快速寻找一些东西,这将起作用。您可以对其进行 cron 操作,以便您在一分钟内知道它是否已崩溃。
如果您有大量服务器,Nagios 就很棒。我建议从 munin 开始,它的设置很简单,插件实际上是 5 分钟的时间投资。它非常适合在比 nagios 更小的范围内收集统计信息和警报。最好的部分是如果您扩展到足够大以保证 nagios 所需的投资,它可以很好地集成到 nagios 中。
穆宁: http: //munin.projects.linpro.no/
发展也开始回升!!
您可以使用 puppet 或 cfengine 之类的东西进行流程监控。
使用这些工具可以很容易地监控某个进程是否仍在运行,如果没有,则重新启动进程并报告事件。您甚至可以扩展它,使其运行检查,例如打开端口并期待对请求的一些回复。
但是,如果您的整个服务器正在死机,这将不起作用,但这似乎不是这里的原因。
我不熟悉 ruby/rack 选项集,但我知道 Django 还可以从您自己的站点向您发送服务器错误(在呈现时导致错误的页面)和 404 问题。也许您可以在您正在构建的内容中找到类似的选项或挂钩。
将这两者结合起来意味着如果页面无法呈现以及整个守护进程死亡,我会收到通知。
你真的应该专注于调试和解决问题:)
也就是说,有两种方法可以做你想做的事。如果您的服务器始终处于启动状态(并且您相信它处于启动状态),您可以通过 cron 作业轻松监控任何正在运行的服务。任何监控软件都只是矫枉过正。但是,如果您的 Web 应用程序有问题,并且它以某种方式失败,而实际上并没有关闭服务器上运行的任何服务,并且没有简单的方法来测试它是否失败(进程本身仍在运行,检查结果不一致等) .) 那么您可能希望使用此处推荐的服务之一从外部检查您的站点。