CloudWatch告警配置

0

【以下的问题经过翻译处理】 场景: 我有一个触发 SNS 主题的 cloudwatch 报警操作。报警指标被配置为过滤 Lambda 日志组中的重要事件。Lambda(每 15 分钟调用一次)检查处于 "错误 "状态的 CloudFormation 堆栈,并记录处于错误状态的每个堆栈的关键事件。

      Logs::MetricFilter
      FilterPattern: '{$.level="CRITICAL"}'
      MetricValue: 1

      CloudWatch::Alarm
      AlarmActions: Send to SNS Topic
      Period: 600
      TreatMissingData: notBreaching
      ComparisonOperator: GreaterThanOrEqualToThreshold
      Threshold: 1
      EvaluationPeriods: 1
      Statistic: Maximum

当1个堆栈处于错误状态时,Cloudwatch警报可以按预期工作:

  • 选择CRITICAL事件
  • 警报状态更改为“In Alarm”
  • 触发SNS主题

挑战: 如果任何其他堆栈进入错误状态(例如15分钟后),并且初始堆栈仍处于错误状态,则警报不会对其进行操作,即不会触发SNS主题。根据研究,我了解到这是正常行为,因为“如果您的指标值仍然违反阈值,则警报将保持ALARM状态,直到它不再违反该阈值为止。” 我也进行了测试并确认了这一点-我使用boto3将set_alarm_state设置回OK,手动调用Lambda,警报状态被改回“In Alarm”,并且SNS主题被触发。

问题: 是否有任何其他适当的配置或逻辑,我可以使用来为处于错误状态的每个堆栈触发SNS主题?

1 回答
0

【以下的回答经过翻译处理】 您可以将 Lambda 和 CloudWatch 替换为 CloudFormation 对 EventBridge 的通知。请参阅:[使用 CloudFormation 事件为预置后管理构建自定义工作流](https://aws.amazon.com/blogs/devops/using-cloudformation-events-to-build-custom-workflows-for-post-provisioning-管理/)。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则