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告警,已经比较熟悉了。

参考

相关推荐
骇客野人19 小时前
阿里云运维手册(通用生产版|云上运维标准化文档)
运维·阿里云·云计算
Benszen1 天前
云计算基础-13:Linux网络管理实战-1
linux·运维·云计算
聚搜云——JuSouClouD2 天前
广州阿里云代理商:多 Agent 协同异常 三大核心问题解析
网络·阿里云·云计算
酷可达拉斯2 天前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
AAA@峥3 天前
K8s 配置管理实战:ConfigMap 与 Secret 完整使用指南
kubernetes·云计算
zero_70323 天前
第二次作业 实验
网络协议·云计算·ensp
聚搜云——JuSouClouD3 天前
深圳阿里云代理商:OpenTelemetry 统一观测日志指标链路接入实战
阿里云·云计算
workflower4 天前
全球云计算产业发展态势-市场:云计算规模保持稳步增长,产业格局日趋明晰
人工智能·深度学习·机器学习·设计模式·机器人·云计算
皮皮虾❀4 天前
阿里巴巴“千问办公”公测深度解析:企业级Agent如何重塑智能办公
人工智能·阿里云·云计算
翼龙云_cloud5 天前
阿里云国际代理商:Redis缓存实例配置和性能优化 从参数调优到持久化
运维·redis·阿里云·缓存·云计算