首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AutoScaling策略的CloudWatch自定义EC2内存指标和警报

使用AutoScaling策略的CloudWatch自定义EC2内存指标和警报
EN

Stack Overflow用户
提问于 2018-02-26 18:25:23
回答 2查看 3.5K关注 0票数 3

我的目标是基于我的EC2实例上使用的内存来测试AutoScaling。

为了监控我的EC2实例内存,我在EC2实例上安装了CloudWatch代理,并创建并配置了我的CloudWatch代理配置文件,如下所述:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file.html

代码语言:javascript
复制
{
        "metrics": {
                "append_dimensions": {
                        "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
                        "ImageId": "${aws:ImageId}",
                        "InstanceId": "${aws:InstanceId}",
                        "InstanceType": "${aws:InstanceType}"
                },
                "metrics_collected": {
                        "cpu": {
                                "measurement": [
                                        "cpu_usage_idle",
                                        "cpu_usage_iowait",
                                        "cpu_usage_user",
                                        "cpu_usage_system"
                                ],
                                "metrics_collection_interval": 60,
                                "totalcpu": false
                        },
                        "disk": {
                                "measurement": [
                                        "used_percent",
                                        "inodes_free"
                                ],
                                "metrics_collection_interval": 60,
                                "resources": [
                                        "*"
                                ]
                        },
                        "diskio": {
                                "measurement": [
                                        "io_time"
                                ],
                                "metrics_collection_interval": 60,
                                "resources": [
                                        "*"
                                ]
                        },
                        "mem": {
                                "measurement": [
                                        "mem_used_percent"
                                ],
                                "metrics_collection_interval": 60
                        },
                        "swap": {
                                "measurement": [
                                        "swap_used_percent"
                                ],
                                "metrics_collection_interval": 60
                        }
                }
        }
}

一旦我在EC2实例上启动CloudWatch代理,自定义指标就可以正常工作,并且我可以在CloudWatch上看到它们。

代码语言:javascript
复制
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c ssm:configuration-parameter-store-name -s

我用这个EC2实例创建了一个AMI,并用这个AMI创建了一个AutoScaling组。然后,我基于自定义指标"mem_used_percent“(当为>=50时)设置一个警报,并将其用作AutoScaling组策略(添加1个实例)。附图。

我连接到EC2实例并使用"Stress“增加内存使用量。触发告警,触发AutoScaling策略,创建一个新的EC2实例。

我看到的问题是,我是在特定的EC2实例上创建告警,而不是在整个AutoScaling组上创建告警,一旦初始EC2实例被销毁,告警就没有意义了。如果不是为AutoScaling组,我如何配置相同的想法?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-01 15:26:40

从AWS文档中,

对于CloudWatch代理,您可以使用aggregation_dimensions聚合自定义指标

代码语言:javascript
复制
"metrics": {
  "cpu":{...}
  "disk":{...}
  "aggregation_dimensions" : [["AutoScalingGroupName"], ["InstanceId", "InstanceType"]]
}

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-common-scenarios.html

对于那些仍在使用旧的perl脚本的用户,请检查以下选项:

代码语言:javascript
复制
--aggregated
--auto-scaling

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html

票数 6
EN

Stack Overflow用户

发布于 2018-03-27 16:26:20

我采取了同样的方法,但没有成功。

代码语言:javascript
复制
{
"metrics": {
    "metrics_collected": {
        "LogicalDisk": {
            "measurement": [
                "% Free Space"
            ],
            "metrics_collection_interval": 60,
            "resources": [
                "*"
            ]
        },
        "Memory": {
            "measurement": [
                "% Committed Bytes In Use"
            ],
            "metrics_collection_interval": 60
        },
        "Paging File": {
            "measurement": [
                "% Usage"
            ],
            "metrics_collection_interval": 60,
            "resources": [
                "*"
            ]
        },
        "PhysicalDisk": {
            "measurement": [
                "% Disk Time"
            ],
            "metrics_collection_interval": 60,
            "resources": [
                "*"
            ]
        },
        "Processor": {
            "measurement": [
                "% User Time",
                "% Idle Time",
                "% Interrupt Time"
            ],
            "metrics_collection_interval": 60,
            "resources": [
                "_Total"
            ]
        }
    },
    "append_dimensions": {
        "ImageId": "${aws:ImageId}",
        "InstanceId": "${aws:InstanceId}",
        "InstanceType": "${aws:InstanceType}",
        "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
    },
    "aggregation_dimensions" : [["AutoScalingGroupName"]]
}

}

当我在cloudwatch管理控制台中查看输出时,我没有看到All>CWAgent下的AutoScalingGroupName聚合

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48986230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档