以下是一个包含正确配置的CloudFormation模板,用于在Ubuntu上安装和运行CloudWatch代理。该模板使用了AWS Systems Manager Parameter Store,以安全地存储和获取代理配置信息。
Resources:
ParameterStoreKey:
Type: AWS::SSM::Parameter
Properties:
Name: /cloudwatch-agent-config
Description: CloudWatch Agent config
Type: String
Value: |
{
"metrics":{
"metrics_collected":{
"mem":{
"measurement":["mem_used_percent"],
"metrics_collection_interval":60,
"append_dimensions":{
"InstanceId":"${aws:InstanceId}"
}
},
"swap":{
"measurement":["swap_used_percent"],
"metrics_collection_interval":60,
"append_dimensions":{
"InstanceId":"${aws:InstanceId}"
}
}
}
}
}
IAMRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service: [ec2.amazonaws.com]
Action: ['sts:AssumeRole']
Path: "/"
ManagedPolicyArns:
- arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
InstanceProfile:
Type: "AWS::IAM::InstanceProfile"
Properties:
Path: "/"
Roles:
- !Ref IAMRole
EC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-0c55b159cbfafe1f0
InstanceType: t2.micro
KeyName: my-key
UserData:
Fn::Base64:
|
#! /bin/bash
echo "{ \"metrics\": { \"metrics_collected\": { \"mem\": { \"measurement\": [\"mem_used_percent\"], \"metrics_collection_interval\": 60, \"append_dimensions\": { \"InstanceId\": \"\$(curl -s http://169.254.169.254/latest/meta-data/instance-id)\" } }, \"swap\": { \"measurement\": [\"