是否有可能通过Cloudwatch警报获取正在运行的进程列表?

我们有一个EC2实例(Ubuntu),它有几个基于Java的应用程序,最近我们遇到了高CPU利用率尖峰,触发了我们的一个Cloudwatch警报。 当我们进入服务器看CPU的使用情况时,事情已经平息下来。

在其中一个警报电子邮件中,我们很想看到的是正在运行的进程及其在报警发生时的CPU利用率(%)。 这甚至有可能吗?

回答你的问题没有。 无论何时达到阈值,您都无法将CloudWatchconfiguration为列出服务器上的进程。 你必须使用其他软件来完成这个。 CloudWatch只logging指标,例如,如果您想知道有多less个进程正在运行,那么您可以configurationCloudWatch来监控这些进程。

build议您尝试使用进程记帐,并在顶部运行以每10分钟(默认)收集系统数据快照,如果您需要更高的分辨率,则减less5分钟。

apt-get install atop acct

那么你可以使用类似的语法来轻松地检查在某个点上发生了什么

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

上面的例子会告诉你在00:00和00:05之间的系统使用快照中发生了什么

我没有经验做类似的事情,但从理论上讲,可以用现有的构件来做:

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

你可以结合这个build议使用atop和configuration你的web应用程序发送最近N分钟的输出。