AWS EB为AutoScaling组添加告警

问题

需要给EC2添加cpu,内存,磁盘等利用率的监控和告警。这里的指标监控,我直接用AWS CW Agent默认最新监控即可,告警创建,我们可以通过EB代码方式来创建。

前提

  • 已经存在EB环境
  • 已经存在SNS主题

步骤

SNS_TOPIC_ARN:EB环境变量设置

先要在EB环境中配置环境变量:SNS_TOPIC_ARN。如下图:

02cloudwatch.config:启用CW Agent

yaml 复制代码
container_commands:
  start_cloudwatch_agent:
    command: /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl  -m ec2 -s -a fetch-config

这里让CW Agent拉取最新的配置,最新的配置会收集内存和磁盘等指标。拉取成功后,重启CW Agent即可。没必要画蛇添足自己再写自定义指标采集配置代码。

07cw-alarms.config:创建cpu,内存,磁盘告警

yaml 复制代码
Resources:
  CPUAlarmHigh:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmDescription: "CPU > 80% Alarm"
      MetricName: CPUUtilization
      Namespace: AWS/EC2
      Statistic: Average
      Period: 300
      EvaluationPeriods: 1
      Threshold: 80
      ComparisonOperator: GreaterThanThreshold
      Dimensions:
        - Name: AutoScalingGroupName
          Value: { "Ref" : "AWSEBAutoScalingGroup" }
      AlarmActions:
        - "Fn::GetOptionSetting":
            Namespace: aws:elasticbeanstalk:application:environment
            OptionName: SNS_TOPIC_ARN

  MemoryAlarmHigh:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmDescription: "Memory > 80% Alarm"
      MetricName: mem_used_percent
      Namespace: CWAgent
      Statistic: Average
      Period: 300
      EvaluationPeriods: 1
      Threshold: 80
      ComparisonOperator: GreaterThanThreshold
      Dimensions:
        - Name: AutoScalingGroupName
          Value: { "Ref" : "AWSEBAutoScalingGroup" }
      AlarmActions:
        - "Fn::GetOptionSetting":
            Namespace: aws:elasticbeanstalk:application:environment
            OptionName: SNS_TOPIC_ARN

  DiskAlarmHigh:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmDescription: "Disk > 80% Alarm"
      MetricName: disk_used_percent
      Namespace: CWAgent
      Statistic: Average
      Period: 300
      EvaluationPeriods: 1
      Threshold: 80
      ComparisonOperator: GreaterThanThreshold
      Dimensions:
        - Name: AutoScalingGroupName
          Value: { "Ref" : "AWSEBAutoScalingGroup" }
      AlarmActions:
        - "Fn::GetOptionSetting":
            Namespace: aws:elasticbeanstalk:application:environment
            OptionName: SNS_TOPIC_ARN

上面就是3个告警的创建,以及从eb环境变量中取SNS主题ARN。

总结

这里对于我来说最不熟悉的就是从eb配置代码中取eb环境变量方式,即Fn::GetOptionSetting函数的使用。其它CW告警,已经比较熟悉了。

参考

相关推荐
@insist12313 小时前
信息安全工程师-云计算安全核心知识框架
安全·云计算·软考·信息安全工程师·软件水平考试
ZStack开发者社区18 小时前
全球化2.0 | ZStack亮相印尼云计算与数据中心大会 以新一代云底座助力数字印尼建设
服务器·云计算·gpu算力
SAP上海工博云署18 小时前
汽配出海业务扩张难题拆解:SAP Business One 适配跨境制造管理
大数据·人工智能·云计算·制造·信息与通信·零售
XINVRY-FPGA20 小时前
XC7Z020-2CLG484I Xilinx Zynq-7000 SoC FPGA
嵌入式硬件·fpga开发·云计算·硬件工程·fpga
智慧医养结合软件开源21 小时前
数智协同,赋能康养服务高效升级
大数据·人工智能·云计算·生活
林林奇遇记21 小时前
阿里云虚拟主机wordpress无法安装插件
阿里云·云计算
少年攻城狮21 小时前
阿里云系列---【申请域名并绑定到主机ip】
linux·服务器·tcp/ip·阿里云·云计算
酷道21 小时前
获取Docker阿里云专属镜像加速地址
阿里云·docker·容器·云计算
互联网老欣21 小时前
2026 最新|OpenClaw(Clawdbot)阿里云轻量服务器一键部署保姆级教程(避坑 + 性能调优)
服务器·阿里云·云计算
Harvy_没救了1 天前
【云计算】OpenStack 核心组件知识总结(一)
云计算·openstack