我正在尝试为AWS Elastic Beanstalk环境的所有实例上的内存设置Cloudwatch警报。我已经设置了使用以下教程在Cloudwatch上获取内存使用率的功能:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-cw.html
现在,我想设置一个警报,如果这些实例中的任何一个的MemoryUtilization超过某个阈值,就会触发该警报。我可以分别选择所有警报和警报,但是我想确保即使Beanstalk扩展了群集或交换了实例,也不必重新配置警报。
是否可以为实例名称=“ env-name”且指标为MemoryUtilization的情况设置警报?
答案 0 :(得分:1)
在您的环境的Elastic Beanstalk控制台中:
如果看不到可用的MemoryUtilization指标,请确认您已正确设置了内存指标的集合。
答案 1 :(得分:1)
Cloudwatch无法以通用方式创建警报。只有两种方法可以完成任务。
1)在AMI中创建启动脚本。启动新实例时,它负责自己的Cloudwatch警报。我很久以前使用过这种方法,这种方法很可靠。但是,终止时运行脚本并不可靠,因此您必须定期清除旧警报。
2)使用具有不错功能的工具(哎呀。。。不是Cloudwatch)。我推荐Blue Matador。有了它们,您甚至不必设置警报或阈值,机器学习会自动为您的资源设定基准并为您创建警报。
如果您来到这里并且对Beanstalk或Cloudwatch不够了解,无法做出贡献,请从这里开始:How to Monitor AWS Elastic Beanstalk with CloudWatch
答案 2 :(得分:0)
从您的问题中我了解到以下要求:
我认为目前不可能。
在aws讨论论坛上正在进行的讨论[1]揭示,至少可以使用(Metric Math)(1)。公制数学功能最多支持10个指标。
您需要做的是,创建一个度量标准来传输是否应触发警报的信息(“计算度量标准” )。有多种方法可以实现此目的:
option_settings:
"aws:elasticbeanstalk:customoption" :
CloudWatchMetrics : "--mem-util --mem-used --mem-avail --disk-space-util --disk-space-used --disk-space-avail --disk-path=/ --auto-scaling --aggregated"
聚合选项的文档说:
添加针对实例类型,AMI ID和该区域的总体的汇总指标。
[1] https://forums.aws.amazon.com/thread.jspa?threadID=94984
[2] https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html#put-metric-data