Amazon web services 如何通过内存监控EC2实例?

Amazon web services 如何通过内存监控EC2实例?,amazon-web-services,amazon-ec2,amazon-cloudwatch,Amazon Web Services,Amazon Ec2,Amazon Cloudwatch,使用Cloudwatch,您可以根据几个标准监控EC2实例,例如网络使用率、CPU使用率等等 不幸的是,内存消耗没有度量标准。首先,只是出于好奇,我想知道,为什么?有人能解释为什么可以监控CPU使用率,但不能监控内存使用率吗?至少对我来说,这并不明显 然后,我的实际问题是:好吧,既然Cloudwatch不允许监视EC2实例的内存使用情况,那么还有什么替代方案?如果实例的内存使用率超过80%,我应该如何设置警报?内存和磁盘特定统计信息要求AWS在操作系统级别而不是主机级别进行监控,这就是为什么默认

使用Cloudwatch,您可以根据几个标准监控EC2实例,例如网络使用率、CPU使用率等等

不幸的是,内存消耗没有度量标准。首先,只是出于好奇,我想知道,为什么?有人能解释为什么可以监控CPU使用率,但不能监控内存使用率吗?至少对我来说,这并不明显


然后,我的实际问题是:好吧,既然Cloudwatch不允许监视EC2实例的内存使用情况,那么还有什么替代方案?如果实例的内存使用率超过80%,我应该如何设置警报?

内存和磁盘特定统计信息要求AWS在操作系统级别而不是主机级别进行监控,这就是为什么默认情况下不进行监控的原因。它可能会在某个时候被添加,但由于它已经在愿望清单上大约7年了,我们可以假设它是一个非常低优先级的项目

监视内存使用情况的推荐方法是在实例上使用自己的监视脚本来创建自定义Cloudwatch度量。AWS已经讨论了如何在Linux实例上使用一组(不受支持的)脚本实现这一点


一旦您的实例发布了自定义指标,您就可以在CloudWatch中将警报附加到它们上。

现在,新的CloudWatch代理可以收集内存和磁盘使用率等指标,请参阅


有了它,您可以监控此类指标,但您需要监控实例中的代理。

CloudWatch最近发布了一个collectd插件,它可以将collectd指标发布到CloudWatch,collectd可以读取内存使用情况(以及许多其他内容),可以说,几乎所有其他第三方解决方案都可以做到这一点。哦,Azure和GCP各自的监控代理也会这样做。AWS对这个问题没有给出一个F*。