Amazon web services CloudWatch自定义EC2内存度量和自动缩放策略警报

Amazon web services CloudWatch自定义EC2内存度量和自动缩放策略警报,amazon-web-services,amazon-ec2,autoscaling,amazon-cloudwatch,Amazon Web Services,Amazon Ec2,Autoscaling,Amazon Cloudwatch,我的目标是基于EC2实例上使用的内存测试自动缩放 为了监视我的EC2实例内存,我在我的EC2实例上安装了CloudWatch代理,并创建和配置了我的CloudWatch代理配置文件,如下所述: 一旦我在EC2实例上启动了CloudWatch代理,定制指标就可以正常工作,我可以在CloudWatch上看到它们 sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -

我的目标是基于EC2实例上使用的内存测试自动缩放

为了监视我的EC2实例内存,我在我的EC2实例上安装了CloudWatch代理,并创建和配置了我的CloudWatch代理配置文件,如下所述:

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

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创建了一个自动缩放组。 然后,我根据自定义指标“mem_used_percent”(当>=50时)设置了一个报警,并将其用作自动缩放组策略(添加1个实例)。附上图片

我连接到EC2实例,并使用“Stress”增加使用的内存。发出警报,触发自动缩放策略,并创建新的EC2实例

我看到的问题是,我在一个特定的EC2实例上创建了一个警报,而不是在整个自动缩放组上,一旦初始EC2实例终止,警报就不再有意义了。 除了自动缩放组,我如何配置相同的想法


谢谢。

来自AWS文档

对于CloudWatch代理,您可以使用
aggregation\u维度

"metrics": {
  "cpu":{...}
  "disk":{...}
  "aggregation_dimensions" : [["AutoScalingGroupName"], ["InstanceId", "InstanceType"]]
}

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

--aggregated
--auto-scaling

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

{
"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

Aggregate Statistics by Auto Scaling Group(按自动缩放聚合统计信息)下按AutoScalingGroupName进行的聚合是您要找的吗?是的,但是对于使用CloudWatch代理的自定义度量,我认为您可以查看[由CloudWatch代理收集的聚合或汇总度量]部分。如果您使用Pearl脚本,请查看--aggregate/--autoscaling选项,谢谢qkhanhpro。我将对此进行测试,并让您知道它是否有效。“聚合维度”:[[“AutoScalingGroupName”]、[“InstanceId”、“InstanceType”]]。这很有魅力@qkhanhpro-你想把它作为答案吗?嗨@qkhanhpro和@Luis,我已经尝试在我的cloudwatch代理的配置中添加了
“聚合维度”:[[“AutoScalingGroupName”],[“InstanceId”,“InstanceType”]]
,但我仍然看不到聚合的度量。你在哪里检查了日志?也许json不起作用<代码>/opt/aws/amazon cloudwatch代理/日志
{
"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"]]
}