我在 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 监控:
答案2
纳吉奥斯是有充分理由的系统监控标准推荐。它是开源且免费的。我们使用它,太。
这是公共网络应用吗?如果是,我建议添加一些第三方监控。我们使用AlertFox 专业版(付费)购买,但他们也有一个免费套餐。免费监控该计划有点隐蔽,但功能相当强大;)
答案3
Nagios 将向您发出有关您的进程状态的警报。
Cacti 将绘制您想要监控的流程图表。
答案4
Nagios 插件是数据库池的绝佳解决方案。大多数数据库都有可靠的插件。插件也是通过 URL 和综合事务监控系统的好方法。
为了获取您描述的流程详细信息,您最终会得到几个不同的系统。您最好寻找一个完全独立于语言或应用程序组件类型的解决方案。这很难做到,但请查看 AppFirst。他们很好地看到了一切。您还可以将所有 Nagios 插件数据放入他们的数据流中。
如果您需要 Ruby 进程的代码级详细信息,则应查看 New Relic。请注意,这是针对开发人员的。这是一个很好的解决方案。但这取决于您在寻找什么。