使用Terraform的CloudWatch指标警报

时间:2019-08-21 13:59:52

标签: amazon-web-services terraform amazon-cloudwatch terraform-provider-aws

出于某种原因尝试使用Terraform设置某些CloudWatch警报时,它找不到指标,并且警报仍然停留在数据不足的状态。 Terraform不会输出任何错误,如果我在AWS中手动搜索,我可以找到指标。我在这里想念什么?

以简单的健康主机警报点为目标组的示例:

SharePoint Server Publishing

当我选择另一个资源(EC2,RDS)和另一个指标时,我收到一个CloudWatch警报,指向正确的指标,并且它不会因数据不足而停留。

1 个答案:

答案 0 :(得分:1)

HealthyHostCount metric仅在TargetGroup, LoadBalancer维度或TargetGroup, AvailabilityZone, LoadBalancer下可用,因此您至少还需要添加LoadBalancer维度才能访问此指标。 / p>

因此,您的Terraform代码应改为:

#healthy host alarm
resource "aws_cloudwatch_metric_alarm" "health" {
  alarm_name          = "${var.tag_app}_healthy_host"
  comparison_operator = "LessThanThreshold"
  evaluation_periods  = "1"
  metric_name         = "HealthyHostCount"
  namespace           = "AWS/ApplicationELB"
  period              = "60"
  statistic           = "Maximum"
  threshold           = "1"
  alarm_description   = "Healthy host count for EC2 machine"
  alarm_actions       = ["${data.aws_sns_topic.blabla.arn}"]
  ok_actions          = ["${data.aws_sns_topic.blabla.arn}"]

  dimensions = {
    LoadBalancer = "${aws_lb.example.arn_suffix}"
    TargetGroup  = "${aws_lb_target_group.alb_target.arn_suffix}"
  }
}