配置 cloudwatch “空闲”警报
Posted
技术标签:
【中文标题】配置 cloudwatch “空闲”警报【英文标题】:Configuring a cloudwatch "idle" alarm 【发布时间】:2021-04-26 08:05:15 【问题描述】:我想配置一个 cloudwatch 警报,当检测到自动扩缩组中的一个实例“空闲”时,该警报可以调低自动扩缩组的所需容量。空闲可以定义为,例如,CPU 利用率持续低于 1%。
我正在使用 terraform,所以现在我的警报配置如下。
resource "aws_cloudwatch_metric_alarm" "backend-x86_64"
alarm_name = "backend-x86_64-is-idle"
comparison_operator = "LessThanOrEqualToThreshold"
evaluation_periods = "4"
period = "120"
metric_name = "CPUUtilization"
namespace = "AWS/EC2"
statistic = "Average"
threshold = "1"
treat_missing_data = "notBreaching"
dimensions =
AutoScalingGroupName = aws_autoscaling_group.backend-x86_64.name
alarm_description = "This metric monitors ec2 cpu utilization"
alarm_actions = [aws_autoscaling_policy.backend-x86_64-shutdown.arn]
但是,它不起作用。下面是 CPU 利用率随时间变化的图表——它在 2 小时内处于 0%,但它没有触发。我怀疑这是因为我误解了“evaluation_periods”和“period”的交互方式。
谁能解释一下如何配置 terraform /cloudwatch 来做我想做的事?
【问题讨论】:
您有很多缺失的数据被视为notBreaching
。我认为您需要调整此设置。
【参考方案1】:
这些差距表明您的实例仅具有基本监控功能,其中数据在 5 分钟内可用。
根据您当前的监控策略,该策略在 8 分钟内检查 4 个数据点的 CPU 利用率是否低于 1%,这意味着每 2 分钟一个数据点加上缺失的数据被视为良好,这意味着您的警报永远不会被触发.
启用Detailed Monitoring 会以 1 分钟的间隔为您获取数据,您应该能够正确获取此警报。
【讨论】:
以上是关于配置 cloudwatch “空闲”警报的主要内容,如果未能解决你的问题,请参考以下文章
如何配置 Cloudwatch 警报 - 每 30 分钟检查 5 个错误
Terraform Cloudwatch 警报 - 维度配置
如何将 CloudWatch 警报配置为每 X 分钟评估一次
CloudWatch 自定义 EC2 内存指标和带有 AutoScaling 策略的警报