amazon-web-services - 使用 SNS 电子邮件警报为 Elastic Beanstalk 创建多个 Cloudwatch 警报

标签 amazon-web-services amazon-elastic-beanstalk amazon-sns aws-cloudformation

因此,我一直在互联网上查阅相关资料,尝试让我的 Elastic Beanstalk 应用程序在指标出现问题时向我发送电子邮件。

我知道我可以通过控制台执行此操作,但我想要一种可配置的方法,可以自动用于多个部署。

到目前为止我已经有了这个(参见编辑):

Resources:
  AWSCloudWatch:
    Type: "AWS::CloudWatch::Alarm"
    Properties:
      ActionsEnabled: true
      AlarmActions: ""
      AlarmDescription: "Traffic spike app over threshold"
      AlarmName: "APP CPU Over 70%"
      ComparisonOperator: GreaterThanOrEqualToThreshold
      EvaluationPeriods: 5
      MetricName: CPUUtilization
      Namespace: Environment Health
      Period: 60
      Statistic: Maximum
      Threshold: 70
      Unit: Percent

如何配置多个警报(环境运行状况监视器、CPU 监视器、延迟监视器)并让它们向我发送电子邮件?

编辑:上面的代码创建了一个与ELB无关的警报。它不会显示在控制台上,而是在完全独立的区域中创建。 :(

最佳答案

除了警报之外,您还需要进一步定义事件路由到的 SNS 主题。

之后,您可以定义电子邮件订阅,它将接收这些 Cloudwatch 警报。

这里是一个示例 CloudFormation 模板:

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  AlarmTopic:
    Type: AWS::SNS::Topic
  Alarm:
    Type: AWS::CloudWatch::Alarm
    Properties:
      ActionsEnabled: true
      AlarmActions:
        - Ref: AlarmTopic
      AlarmDescription: "Traffic spike app over threshold"
      AlarmName: "APP CPU Over 70%"
      ComparisonOperator: GreaterThanOrEqualToThreshold
      EvaluationPeriods: 5
      MetricName: CPUUtilization
      Namespace: Environment Health
      Period: 60
      Statistic: Maximum
      Threshold: 70
      Unit: Percent
  TopicSubscription:
    Type: AWS::SNS::Subscription
    Properties:
      Endpoint: "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d9bcb4b8b0b599bca1b8b4a9b5bcf7bab6b4" rel="noreferrer noopener nofollow">[email protected]</a>"
      Protocol: Email
      TopicArn:
        Ref: AlarmTopic

关于amazon-web-services - 使用 SNS 电子邮件警报为 Elastic Beanstalk 创建多个 Cloudwatch 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42604854/

相关文章:

amazon-web-services - 使用 Amazon ElastiCache redis 存储 session

java - 如何从 Spring Java Elastic Beanstalk 应用程序连接到我的 AWS DynamoDB 实例?

amazon-web-services - 亚马逊 SNS : an offline mock

ios - 当 iOS 设置中的通知发生更改时,Amazon SNS 如何禁用/重新启用设备?

python - 将 aws 后端连接到 firebase 数据库

amazon-web-services - ElasticSearch AWS插件是必须在AWS上部署的插件吗?

amazon-web-services - 如何从 ALB OIDC session 注销?

amazon-web-services - 使用 ebextensions 动态设置每个环境的 EC2 实例类型

.net - 从 .ebextensions 中的 Elastic Beanstalk 读取环境属性

node.js - AWS SQS 和 SNS 中的消息结构