使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器中收集指标、日志和跟踪信息。本实验概览如下:
- 创建CloudWatch代理运行角色
- 安装CloudWatch代理软件包
- 使用CloudWatch代理收集指标
- CloudWatch指标收集确认
## 创建 CloudWatch 代理运行角色
- Name:xybCloudWatchAgentServerRole
- 权限:CloudWatchAgentServerPolicy
- 启动EC2,赋予角色权限
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"ec2:DescribeVolumes",
"ec2:DescribeTags",
"logs:PutLogEvents",
"logs:DescribeLogStreams",
"logs:DescribeLogGroups",
"logs:CreateLogStream",
"logs:CreateLogGroup"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ssm:GetParameter"
],
"Resource": "arn:aws:ssm:*:*:parameter/AmazonCloudWatch-*"
}
]
}
## 安装 CloudWatch 代理软件包
# 系统更新
$ sudo yum update -y
# 安装代理包
$ sudo yum install -y amazon-cloudwatch-agent
# 安装collectd
$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo yum install -y collectd
## 使用 CloudWatch代理收集指标
- 建立代理配置文件
- 启动CloudWatch代理
# 设置代理
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
# 启动代理
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config -m ec2 -s \
-c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
# 代理启动进程确认
$ ps aux | grep agent
[ec2-user@ip-172-16-1-18 ~]$ cat /opt/aws/amazon-cloudwatch-agent/bin/config.json
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"metrics": {
"aggregation_dimensions": [
[
"InstanceId"
]
],
"append_dimensions": {
"AutoScalingGroupName": "${aws:AutoScalingGroupName}",
"ImageId": "${aws:ImageId}",
"InstanceId": "${aws:InstanceId}",
"InstanceType": "${aws:InstanceType}"
},
"metrics_collected": {
"collectd": {
"metrics_aggregation_interval": 60
},
"disk": {
"measurement": [
"used_percent"
],
"metrics_collection_interval": 60,
"resources": [
"*"
]
},
"mem": {
"measurement": [
"mem_used_percent"
],
"metrics_collection_interval": 60
},
"statsd": {
"metrics_aggregation_interval": 60,
"metrics_collection_interval": 60,
"service_address": ":8125"
}
}
}
}[ec2-user@ip-172-16-1-18 ~]$
[ec2-user@ip-172-16-1-18 ~]$ ps aux | grep agent
root 3091 0.0 1.2 714420 12508 ? Ssl 01:35 0:00 /usr/bin/amazon-ssm-agent
root 3145 0.0 2.4 724104 23620 ? Sl 01:35 0:01 /usr/bin/ssm-agent-worker
root 4072 0.2 6.4 789336 63164 ? Ssl 03:14 0:00 /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent -config /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml -envconfig /opt/aws/amazon-cloudwatch-agent/etc/env-config.json -pidfile /opt/aws/amazon-cloudwatch-agent/var/amazon-cloudwatch-agent.pid
ec2-user 4210 0.0 0.1 119432 980 pts/1 S+ 03:18 0:00 grep --color=auto agent
## CloudWatch指标收集确认
- CWAgent
- ImageId,InstanceId,InstanceType
- mem_used_percent
使用 CloudWatch 代理从 Amazon EC2 实例和本地部署服务器中收集指标和日志 - Amazon CloudWatch