amazon/cloudwatch-agentAmazon CloudWatch Agent Docker镜像是Amazon CloudWatch Agent的容器化部署版本。CloudWatch Agent是AWS提供的轻量级监控代理,用于收集系统、应用程序的指标与日志数据,并发送至Amazon CloudWatch服务,实现对AWS资源及应用的统一监控、告警与可观测性分析。
CloudWatch Agent Docker镜像托管于Amazon ECR公共仓库,可通过以下命令拉取:
bashdocker pull public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest
注:可通过指定标签(如
1.300025.0b253872)获取特定版本,版本列表参见AWS官方文档。
CloudWatch Agent通过JSON配置文件定义数据采集规则,核心包含metrics(指标配置)和logs(日志配置)模块。
创建config.json文件,示例内容如下:
json{ "agent": { "metrics_collection_interval": 60, "logfile": "/var/log/cloudwatch-agent.log" }, "metrics": { "metrics_collected": { "cpu": { "resources": ["*"], "measurement": ["cpu_usage_idle", "cpu_usage_user", "cpu_usage_system"] }, "mem": { "resources": ["*"], "measurement": ["mem_used_percent"] } } }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/application/*.log", "log_group_name": "/my-app/logs", "log_stream_name": "{instance_id}/application.log" } ] } } } }
agen***trics_collection_interval:指标采集间隔(秒),默认60秒。metrics.metrics_collected:定义需采集的指标类型(如cpu、mem、disk),resources: ["*"]表示采集所有资源(如所有CPU核心、磁盘分区)。logs.logs_collected.files.collect_list:定义日志文件路径、目标日志组(log_group_name)和日志流(log_stream_name)。详细配置参数及高级功能(如自定义指标、过滤器)参见CloudWatch Agent配置文档。
CloudWatchAgentServerPolicy权限的IAM角色。AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY)。/var/log)到容器内,确保Agent可访问日志文件。bashdocker run -d \ --name cloudwatch-agent \ --privileged \ -v /var/run/docker.sock:/var/run/docker.sock \ # 用于Docker容器指标采集(可选) -v /sys:/sys \ # 用于系统指标采集 -v /dev/disk/:/dev/disk \ # 用于磁盘指标采集(可选) -v /path/to/config.json:/etc/cloudwatch-agent-config.json \ # 挂载配置文件 -e AWS_REGION=us-east-1 \ # 指定AWS区域 public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest \ /opt/aws/amazon-cloudwatch-agent/bin/start-amazon-cloudwatch-agent \ --config-file /etc/cloudwatch-agent-config.json
bashdocker run -d \ --name cloudwatch-agent \ --privileged \ -v /path/to/config.json:/etc/cloudwatch-agent-config.json \ -e AWS_REGION=us-east-1 \ -e AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY \ -e AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY \ public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest \ /opt/aws/amazon-cloudwatch-agent/bin/start-amazon-cloudwatch-agent --config-file /etc/cloudwatch-agent-config.json
创建docker-compose.yml文件:
yamlversion: '3' services: cloudwatch-agent: image: public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest container_name: cloudwatch-agent privileged: true volumes: - /var/run/docker.sock:/var/run/docker.sock - /sys:/sys - /dev/disk/:/dev/disk - ./config.json:/etc/cloudwatch-agent-config.json # 挂载宿主机配置文件 environment: - AWS_REGION=us-east-1 # 非EC2环境需添加以下凭证 # - AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY # - AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY command: /opt/aws/amazon-cloudwatch-agent/bin/start-amazon-cloudwatch-agent --config-file /etc/cloudwatch-agent-config.json restart: unless-stopped
启动服务:
bashdocker-compose up -d
| 环境变量 | 说明 |
|---|---|
AWS_REGION | AWS区域(如us-east-1、eu-west-1),必填。 |
AWS_ACCESS_KEY_ID | AWS访问密钥ID(非EC2环境授权时必填)。 |
AWS_SECRET_ACCESS_KEY | AWS秘密访问密钥(非EC2环境授权时必填)。 |
AGENT_CONFIG_FILE | 容器内配置文件路径,默认/etc/cloudwatch-agent-config.json。 |
LOG_LEVEL | 日志级别(debug、info、warn、error),默认info。 |
默认配置文件路径为容器内的/etc/cloudwatch-agent-config.json,需通过-v参数挂载宿主机配置文件至该路径。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务