我们有一个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
你可以结合这个build议使用atop和configuration你的web应用程序发送最近N分钟的输出。