锁定老帖子 主题:我们如何监控Rails应用
精华帖 (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页面上或者即时通信客户端就可以收到异常消息。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 4750 次