如何收集和整合 AWS 中各个实例的应用程序运行状况

如何收集和整合 AWS 中各个实例的应用程序运行状况

我们在 EC2 实例上部署了多个应用程序。它们是 jar 文件、Tomcat 上的 war 文件、基于 npm 的 UI 应用程序和 python 脚本。

每种方法都有不同的验证方式。对于 Tomcat webapps 下的 war 文件,我可以检查 swagger UI。对于 UI 项目,我可以检查应用程序链接。对于独立 jar 和 python 脚本,如果正在运行,我会检查进程。

有没有办法可以进行检查(在虚拟机上或 AWS 中),将状态(启动/运行或关闭/离线)发送到 AWS,以便所有实例中的所有应用程序都可以查看它?

我考虑过使用 monit,即编写配置来监控各个应用程序的进程和链接。但是没有办法将其发送到 AWS 中的“一个地方”仪表板 Monit 有自己的仪表板,但它是特定于实例的。因此,如果我有 20 个实例,就会有 20 个仪表板,如 http://IP:2812/。它有一个集中式仪表板产品,不是开源的,所以我无法使用它

我检查了 Cloudwatch 中的 AWS 资源健康子类别。它仅限于 CPU/内存/状态检查,而且我没有看到自定义跟踪单个 jar/war 文件的方法

我检查了 AWS X Ray,发现它需要更改应用程序代码,这让我认为它会提取太多数据,例如 4XX 和 5XX 的数量(这不是必需的,因为我需要做的就是检查链接或流程并以直观的方式报告它)

有没有办法在 AWS 或某些开源工具中的单个仪表板/页面上直观显示所有实例上所有应用程序的资源运行状况?

答案1

我建议您监控应用程序而不是基础设施。Cloudwatch 合成材料就像一个网络浏览器,可以根据请求的结果发出警报。

如果要在组件级别进行监控,则必须编写某种脚本,使用 API 将数据发送到 CloudWatch Metrics 或 Cloudwatch Logs,这并不特别困难。从那里,您可以根据指标发出警报,或使用指标过滤器根据日志内容发出警报。

相关内容