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

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

我在 Fedora Linux 服务器中部署了一个应用程序。此应用程序是一个 Ruby on Rails Web 应用程序,使用 MySQL 和 MongoDB 作为数据库。该应用程序还使用 Delayed Job gem 进行异步处理。我使用 NGinx 作为 Web 服务器。我还使用 Passenger。

因此,我至少有 5 个过程需要担心:

  • MySQL 进程
  • MongoDB 进程
  • Nginx 进程
  • Web 应用程序的 Ruby Enterprise Edition 进程
  • Ruby 企业版 Delayed Job 流程

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

对我来说,监控非常重要:

  • 各工序状态
  • 各进程的内存和CPU使用情况
  • 总体 I/O 使用情况
  • 总体 CPU 和内存使用情况
  • 数据库连接池的使用情况(以便我可以对其进行调整)

我想要一个可以给我提供监控数据的工具,为 CPU 和内存数据创建基于时间的图形。我还希望能够通过网络访问所有这些过程的日志文件。

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

你们推荐哪种工具或哪套工具?

问候,

鲁本

答案1

如果您的网站是公开的,我向您推荐优秀的 New Relic RPM 用于 Rails 监控:

http://www.newrelic.com/

答案2

纳吉奥斯是有充分理由的系统监控标准推荐。它是开源且免费的。我们使用它,太。

这是公共网络应用吗?如果是,我建议添加一些第三方监控。我们使用AlertFox 专业版(付费)购买,但他们也有一个免费套餐。免费监控该计划有点隐蔽,但功能相当强大;)

答案3

Nagios 将向您发出有关您的进程状态的警报。

Cacti 将绘制您想要监控的流程图表。

答案4

Nagios 插件是数据库池的绝佳解决方案。大多数数据库都有可靠的插件。插件也是通过 URL 和综合事务监控系统的好方法。

为了获取您描述的流程详细信息,您最终会得到几个不同的系统。您最好寻找一个完全独立于语言或应用程序组件类型的解决方案。这很难做到,但请查看 AppFirst。他们很好地看到了一切。您还可以将所有 Nagios 插件数据放入他们的数据流中。

如果您需要 Ruby 进程的代码级详细信息,则应查看 New Relic。请注意,这是针对开发人员的。这是一个很好的解决方案。但这取决于您在寻找什么。

相关内容