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

参考

相关推荐
故乡dee云7 小时前
多云账单代付靠谱吗?付款流程、费用核对和账号安全注意事项
安全·阿里云·云计算·腾讯云
fengkai45457 小时前
三、存储基础知识
华为·云计算·存储
C厂工沛10 小时前
安装VMware tools时无法在更新系统中找到组件?(解决)
云计算
Akiyama_Mio-Kon11 小时前
AWS AI 自动安全修复深度解读:从生成脚本到最小权限、双人审批与回滚审计闭环
aws·ai agent·security hub·guardduty·安全自动化·云安全治理
weixin_3077791312 小时前
Databricks里用PySpark统计指定表和字段中各字段的空值、空字符串或零值比例
运维·数据仓库·python·spark·云计算
ai小陈2 天前
大模型推理显存不够怎么办?量化、KV Cache与CPU Offload优化实战
大数据·人工智能·ai·云计算·gpu算力
@HNUSTer2 天前
基于 GEE 的 Sentinel-2 多光谱数据实现河流浊度指数(NDTI)遥感监测
云计算·数据集·遥感大数据·gee·云平台·河流浊度(ndti)·水质遥感反演
DolitD2 天前
云流技术深度剖析:单服务器下如何实现3D应用的多实例并发?
java·服务器·前端·3d·云原生·云计算
小马同学-2 天前
四、虚拟化技术
运维·云计算
Lifangyun_WD3 天前
第一次租 GPU 服务器怎么开始?镜像、SSH、数据存储和停机前要做什么
服务器·云计算·gpu算力·gpu算力租赁