是否可以通过Cloudwatch Alarm获取正在运行的进程的列表?


9

我们有一个EC2实例(Ubuntu),该实例具有一些基于Java的应用程序,最近我们受到CPU使用率高峰的冲击,这会触发我们的Cloudwatch警报之一。当我们进入服务器查看cpu利用率时,情况已经平静下来。

我们希望在其中一封警报电子邮件中看到的是警报发生时正在运行的进程及其cpu利用率(%)的列表。这有可能吗?

Answers:


0

要回答你的问题。您无法将CloudWatch配置为在达到阈值时列出服务器上的进程。您必须使用其他软件来完成此任务。CloudWatch仅记录指标,例如,如果您想知道正在运行多少个进程,则可以配置CloudWatch对其进行监控。


1

我建议您尝试使用进程记帐并每10分钟运行一次以收集系统数据快照(默认),如果需要更好的分辨率,则减少5分钟。

apt-get install atop acct

然后,您可以使用类似下面的语法轻松地检查发生了什么事情

atop -r atop.log.file -b 00:00 -e 00:05

上面的示例将向您显示00:00到00:05之间的系统使用情况快照中发生的情况


1

我没有类似的经验,但是从理论上讲,可以使用现有的构建基块来实现:

CloudWatch -> SNS -> HTTP/HTTPS -> homebrew webapp -> collect data and email it
  • 设置您的CloudWatch警报,以便在警报关闭时将SNS消息发布到主题。
  • 在您的EC2实例上运行一个webapp,当您按下特定的地址时,该webapp将收集正在运行的进程列表并通过电子邮件发送给您。
  • 使用Web应用程序的端点向SNS主题添加订阅。您可以选择HTTP或HTTPS作为协议。

您可以将此与建议结合使用atop并配置您的Web应用程序以发送最近的N分钟输出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.