用于监视Linux,Ruby on Rails(使用Delayed Job gem),Nginx,Passenger,Mysql和MongoDB环境的状态和性能的工具

我在Fedora Linux服务器上部署了一个应用程序。 这个应用程序是一个Ruby on Rails的Web应用程序,使用MySQL和MongoDB作为数据库。 应用程序还使用“延迟作业”gem进行asynchronous处理。 我使用NGinx作为Web服务器。 我也使用乘客。

所以,我至less有5个过程,我必须担心:

  • MySQL进程
  • MongoDB进程
  • Nginx进程
  • 用于Web应用程序的Ruby企业版过程
  • Ruby Enterprise Edition进程的延迟作业gem

不幸的是,所有这个过程将运行在同一个虚拟机:(

对我来说,监视是非常重要的:

  • 每个进程的状态
  • 每个进程的内存和CPU使用情况
  • 整体I / O使用情况
  • 总的CPU和内存使用情况
  • 数据库连接池的使用(所以我可以调整它)

我想要一个可以给我监控数据的工具,为CPU和内存数据创build基于时间的graphics。 我也希望能够通过networking访问所有这些进程的日志文件。

我的公司没有购买昂贵工具的许可证的预算,所以我真的会优先select开源工具。

你们推荐哪个工具,哪个或哪些工具?

问候,

Rubem

如果您的网站是公开的,我build议您使用优秀的New Relic RPM for Rails监控:

http://www.newrelic.com/

Nagios是系统监视的标准build议。 它是开源的,免费的。 我们也使用它。

这是一个公共networking应用程序? 如果是这样,我build议添加一些第三方监测。 我们使用AlertFox Pro (付费),但他们也有一个免费的包。 免费的监控计划有点隐蔽,但function非常强大;)

Nagios会给你提醒你的进程状态。

仙人掌将图表你想监视你的过程。

Nagios插件是数据库池的绝佳解决scheme。 大多数数据库都有可靠的插件。 插件也是一个很好的解决scheme,通过合成事务的URL来监视你的系统。

为了获得你描述的stream程细节,你将会得到几个不同的系统。 您可能会很好地查看完全独立于语言或应用程序组件types的解决scheme。 这很难做到,但请查看AppFirst。 他们看到一切都做得很好。 您也可以将所有的Nagios插件数据放入其数据stream中。

如果你需要Ruby进程的代码级别的详细信息,你应该看看New Relic。 请注意这是针对开发者的。 这是一个很好的解决scheme。 但这取决于你在找什么。