【问题标题】:Monitoring Apache Tomcat applications in production environment在生产环境中监控 Apache Tomcat 应用程序
【发布时间】:2010-10-03 03:08:25
【问题描述】:
您如何确保生产中的应用程序正常运行?
如果出现问题,您如何提醒您的开发团队?
我问这个是因为我正在编写一个 bash 脚本来检查这个问题,我想知道是否有更聪明或更完整的方法来实现这一点。
背后的想法是这个命令:wget -q -O - APPLICATION_URL_HERE | grep 'ERROR 404,我仍然要检查各种 HTTP 错误,但你可以明白我的意思。
如果某个应用程序被识别为未运行,则将邮件发送到它所属的团队列表。
我所有的应用程序都在 Apache Tomcat 上运行。
【问题讨论】:
标签:
web-applications
tomcat
monitoring
【解决方案1】:
Tomcat 通常可以通过 JMX 进行监控;从这个documentation 可以看出。这通常是最干净的监控方式,因为它可以集成到许多第三方监控工具中,这些工具可以支持各种通知和花里胡哨。
如果您的网站正常运行并且对客户可见,这可能仍然无法为您提供完整的“外部视图”,因为还有许多其他问题可能会出错。相当多的管理系统还允许您安装执行此操作的代理并集成到整个监控方案中。有多个open source jmx tools
【解决方案2】:
您可以尝试Lambda Probe 的社区分支,Psi Probe
以下是他们主页上的简短摘要:
"... 实时监控和管理 Apache Tomcat 实例的终极工具。Lambda Probe 将通过易于使用和友好的 Web 界面帮助您可视化有关 Apache Tomcat 实例的实时信息。有关更多信息,请访问概述部分。”
【解决方案3】:
这取决于你所看到的你想要做的事情的详细程度。有许多公司提供的产品和服务将监控 Web 应用程序以确保它们完全运行,如果没有,请解释错误在哪里以及它在做什么。我认为 Empirix 在他们的 web 测试套件中有一个,但我已经有一段时间没有使用它了,所以他们可能已经删除了它。还有很多其他的。我所见过的那些确实是通过站点并报告发现的任何错误的自动化测试。
如果你真的很认真(比如想花钱确保你的网站正常运行),我会在 Gartner 上搜索网站可用性。我几乎肯定他们将围绕这个主题建立一个魔力象限,它会给你一个很好的起点。
我会说你所做的还不错,你只是在重新发明轮子,而且可能不会像专注于它的公司那样彻底。话虽这么说,你的绝对是更便宜的选择,它可以满足你的需要。
【解决方案4】:
我们正在运行几个后台应用程序和服务。它们都包含一个由 TCP/IP 连接触发的小类,用于将状态信息发送到在 ASP 页面上打印出信息的 Web 服务。该页面每 5 分钟由元标记刷新一次。
我只需要在我的浏览器中打开页面并不时检查是否有任何组件离线(很容易发现,因为它们会变成红色)。
整个系统非常轻巧,易于包含在任何项目中。它是我的一位同事写的,效果很好。如果连接丢失超过 x 分钟,我们还可以增强它以向我们发送电子邮件,但到目前为止还没有必要。
【解决方案5】:
Nagios、Zabbix、OpenNMS...为这些类型的工作而构建的无数监控工具。