我的博客是一个自定义的ruby/机架应用程序,并且每两周随机崩溃。 有时我几天没有注意到,如果发生这种情况,我希望立即得到通知。
什么是最好的办法呢? 我正在运行Centos 5.3,Nginx,Passenger,Rack等。
我已经考虑过想办法给自己发一封错误日志的尾巴,因为这样可以帮助我捕捉所有事情,而不仅仅是一个应用程序(它会告诉我缺less的链接等)。 有没有一个简单的方法来做到这一点?
谢谢!
如果您的网站出现故障时需要提醒,则应考虑通知的在线服务:他们会看到外部的视angular。
如果你从“在你自己的盒子里面”监控,你将永远不会收到一封电子邮件,如果它完全崩溃或失去其networking连接,因为你的脚本将无法运行或警告你了。
贝洛或Pingdom都提供免费帐户,很好让你开始。
更多的服务列出在任何人都可以推荐一个网站监测服务?
我很惊讶没有人提到Nagios 。 它非常强大,正常运行时间百分比,通过电子邮件/ IM通知,停机时间可以运行脚本等。这可能是最好的。
看看AreMySitesUp( http://aremysitesup.com )和Pingdom。 两者都有免费的选项,并会在您的网站停机时发送电子邮件和短信。 AreMySitesUp也有一个iPhone应用程序。
你可以用God:god(dot)rubyforge [dot] org
你有一台服务器在另一个地方,你可以运行脚本?
这些家伙将免费(每30分钟)http host-tracker.com订单页监控您的网页(最多2个URL)
只需编写一个使用wget的shell脚本,然后根据响应代码确定页面是否响应,即可获得基本的连接testing。
#!/bin/bash WGET='/usr/bin/wget' URL='http://url.to.check' ${WGET} -O /dev/null --tries=1 ${URL} if [ $? -eq 0 ]; then echo "Success!" # You could write a log file or something here else echo "Fail! :(" # run something to mail you that your site isn't responding fi
这是一个可以扩展的非常基本的例子,但是如果你只是在寻找一些快速的东西,这将起作用。 你可以cron它,所以你知道w /在一分钟内,如果它已经崩溃。
如果你有大量的服务器,Nagios很棒。 我build议从慕尼黑开始,安装简单,插件实际上是一个5分钟的时间投资。 收集统计数字和提醒比nagios小规模是伟大的。 最好的部分是你应该扩大到足以保证nagios所需要的投资,它会很好地集成到nagios中。
Munin: http : //munin.projects.linpro.no/
开发也开始回暖了!
你可以使用puppet或cfengine来进行stream程监控。
监视某个进程是否仍然运行,如果没有,重新启动进程并报告事件,使用这些工具很容易。 你甚至可以扩展它,以便它运行一个检查,如打开一个端口,并期待在请求上的一些答复。
但是,如果你的整个服务器正在死亡,这不起作用,但这似乎不是原因。
我不熟悉ruby / rack选项集,但是我知道Django也可以从你自己的站点上向你发送服务器错误(在渲染时导致错误的页面)和404。 也许你可以find一个类似的选项或挂钩在你正在build造的东西。
结合这两个手段,我会通知万一页面无法呈现,如果整个守护进程死亡。
你真的应该专注于debugging和解决问题:)
说,有两种方法可以做你想做的事情。 如果您的服务器始终处于运行状态(并且您信任它),则可以通过cron作业轻松地监视正在运行的服务。 任何监控软件只是一个矫枉过正的问题。 但是,如果您的Web应用程序出现问题,并且以某种方式失败,而没有真正closures服务器上运行的任何服务,并且没有简单的方法来testing它失败(进程本身仍然运行,检查结果不一致等),那么你可能想使用这里推荐的服务之一,从外面检查您的网站。