论坛首页 编程语言技术论坛

我们如何监控Rails应用

浏览 4750 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-12-20   最后修改:2011-12-20

 

我们如何监控Rails应用

 

            我们在全国各地部署了数十套Rails开发的软件系统,为了监测和收集系统问题,开发了一个监控服务NodeBus。当Rails程序出现异常或者故障时,会主动发送一条微博或者即时消息上来。

            最初这个监控通过Rails插件HTTP POST异常消息到监控服务器,但这种做法有很大问题,因为大部分系统在防护墙后面,与监测服务器的互通情况很差,HTTP POST经常长时间阻塞。

            后来我们开发了一个部署在服务器本地的智能代理(开源在 http://github.com/nodebus/smarta),由代理负责与监控服务器通信,Rails的监控插件只需要通过UDP接口发送消息到本机的代理。这种方式安全高效,而且对Rails应用本身没有任何性能影响。

            我们把这个监控服务免费开放出来,欢迎试用提建议,监控rails的部署流程如下:

 

1. nodebus.com上注册帐户并添加节点。比如添加一个名为rails的节点,然后按说明在rails主机上装代理(只支持linux/unix),并启动。

   

   注意代理配置时要增加一项:

   smarta {

     ......  

     collectd 7070

   }

 

2.  安装监控插件的gem

 

gem install smarta

 

3. 使用监控插件发送异常,代码示例如下:

 

require "rubygems"

require "smarta"

sensor = Smarta::Sensor.new(:host => "localhost", :port => 7070, :name => "Rails")

sensor.info("import ap successfully", "import 200 ap")

sensor.warn("exception caught", "exception details")

sensor.crit("xxx error", "error details")

 

4. nodebus.com页面上或者即时通信客户端就可以收到异常消息。

 

 

  • 大小: 62.6 KB
  • 大小: 113.3 KB
  • 大小: 91.3 KB
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics