【问题标题】:Monitor production services (tomcat, MSQL and apache) using amazon ec2使用 amazon ec2 监控生产服务(tomcat、MSQL 和 apache)
【发布时间】:2025-12-04 11:25:01
【问题描述】:

目前我有一个服务器 - Amazon EC2 实例类型。通过 AWS 控制台,我们可以监控我们的实例(服务器)CPU 利用率、磁盘读取等。

有什么方法可以监控我的应用程序服务——比如tomcat、mysql、apache等。基本上,每当tomcat或mysql停止时,我都需要来自亚马逊的电子邮件提醒。对于 CPU 利用率,我能够成功。但是,如何通过 AWS 监控我的应用程序服务状态。

有什么建议吗?如果我们不能通过 AWS 做,有没有其他方法可以监控它们?

谢谢。

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    亚马逊本身只提供您可以在其中运行服务的基本平台。因此,亚马逊没有现成的可用于监控服务的预构建解决方案。

    但也有一些替代方案需要考虑:

    所有这些解决方案都需要您进行安装或编程。

    【讨论】:

    • 谢谢 jOnes。我喜欢使用 Amazon cloudwatch 自定义指标。如果我没记错的话,docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/… 我们可以使用这些脚本来创建一些自定义指标。我们可以编写自己的指标来监控 tomcat、mysql 状态并发出警报。如果我错了,请纠正我。另外,如果有任何预定义的教程会很好,它解释了如何编写这样的脚本来监控tomcat。请建议您是否有任何此类链接。再次感谢您的及时帮助。
    • 抱歉,我无法为您提供更多有关自定义指标的帮助(但您应该能够通过 Google 找到链接等)。当我们面临类似的任务时,我们使用了 monit 和 nagios,因为它们具有更好的自动化并且不限于 AWS。
    • 没关系,谢谢 jOnes。再次感谢您的帮助。我也会用同样的。
    【解决方案2】:

    我认为在实施解决方案之前,您需要非常仔细地考虑您的要求。即使您选择的解决方案是开源且“免费”的,您也将投入大量时间使其正常运行,并且您将继续投入时间使其随着您的应用程序和环境的变化而正常运行。

    现在您已经陈述了一个乍一看似乎很简单的要求,即了解某些关键服务是否已启动并正在运行。但是跑步是什么意思?运行是否意味着它没有停止或崩溃?或者运行是否意味着正常数量的数据流入和流出服务?这是您使用商品或免费工具无法确定的。

    更进一步。运行是否意味着服务的性能与应有的一样好?您想使用什么性能定义?服务正在使用正常数量的资源(易于衡量),或者流入服务的事务正在以可接受的响应时间处理(同样超出商品或免费工具的范围)。

    最重要的是,所有的东西你都得到你所支付的。如果您想真正知道它正在工作并且工作包括事务响应时间,那么您将需要一个商业级 APM 工具。这些分为两类:

    1) 从应用程序容器(New Relic、AppDynamics 等)内部监控您的应用程序的应用程序

    2) 从操作系统内部监控您的应用程序(AppEnsure、BlueStripe、Correlsense 等)

    如果您的应用程序在本地运行,并且您可以将设备连接到您的交换机,那么您还有第三种选择,即使用来自 ExtraHop 等供应商的网络深度数据包检测。

    【讨论】: