
ankama/aws-otel-collector本镜像为 amazon/aws-otel-collector 的容器分支版本(fork),基于 OpenTelemetry Collector 构建,专注于遥测数据(指标、日志、分布式追踪)的收集、处理与导出。该镜像继承了官方 AWS OpenTelemetry Collector 的核心能力,并可能包含特定场景下的定制化优化,适用于云原生环境中应用与基础设施的可观测性数据管理。
aws*** exporter、cloudwatchlogs exporter、awscontainerinsightreceiver 等;通过 Docker Hub 或私有仓库拉取镜像(假设镜像标签为 my-fork/aws-otel-collector:latest):
bashdocker pull my-fork/aws-otel-collector:latest
通过 docker run 启动容器,需挂载配置文件并配置必要环境变量(如 AWS 区域):
bashdocker run -d \ --name aws-otel-collector \ -v /path/to/local/config.yaml:/etc/otel-collector-config.yaml \ # 挂载本地配置文件 -e AWS_REGION=us-east-1 \ # AWS 区域 -e AWS_ACCESS_KEY_ID=AKIAEXAMPLE \ # AWS 访问密钥(可选,若使用 IAM 角色则无需) -e AWS_SECRET_ACCESS_KEY=secret \ # AWS 密钥(可选) -p 4317:4317 \ # gRPC 接收端口(默认) -p 4318:4318 \ # HTTP 接收端口(默认) my-fork/aws-otel-collector:latest \ --config=/etc/otel-collector-config.yaml # 指定配置文件路径
以下为基础配置示例,定义一个 "metrics" pipeline(收集 Prometheus 指标并导出至 CloudWatch):
yamlreceivers: prometheus: config: scrape_configs: - job_name: 'otel-collector' static_configs: - targets: ['localhost:8888'] # 采集 Collector 自身指标 processors: batch: # 批量处理数据,优化网络传输 exporters: awscloudwatchmetrics: # 导出至 CloudWatch Metrics region: ${AWS_REGION} namespace: 'MyApp/Metrics' service: pipelines: metrics: receivers: [prometheus] processors: [batch] exporters: [awscloudwatchmetrics]
创建 docker-compose.yaml,定义 Collector 服务及依赖(如 Prometheus,可选):
yamlversion: '3.8' services: otel-collector: image: my-fork/aws-otel-collector:latest container_name: otel-collector volumes: - ./config.yaml:/etc/otel-collector-config.yaml # 挂载本地配置文件 environment: - AWS_REGION=us-east-1 - AWS_ACCESS_KEY_ID=AKIAEXAMPLE - AWS_SECRET_ACCESS_KEY=secret ports: - "4317:4317" # gRPC 接收端口 - "4318:4318" # HTTP 接收端口 command: ["--config", "/etc/otel-collector-config.yaml"] restart: unless-stopped
启动服务:
bashdocker-compose up -d
配置文件是 Collector 的核心,需定义以下关键部分:
prometheus、jaeger、aws***、filelog 等;batch(批量)、filter(过滤)、metricstransform(指标转换)等;awscloudwatchmetrics、aws***、prometheusremotewrite、logging(控制台输出)等;metrics、logs、traces 三类 pipeline)。详细配置语法与组件说明可参考 OpenTelemetry Collector 官方文档 及 AWS OTel Collector 文档。
Collector 支持通过命令行参数调整运行行为,常用参数如下:
| 参数 | 描述 | 默认值 |
|---|---|---|
--config <path> | 指定配置文件路径,支持本地文件或 HTTP URL(如 [***]) | /etc/otel-collector-config.yaml |
--log-level <level> | 设置日志级别,可选值:debug、info、warn、error、fatal | info |
--feature-gates <gates> | 启用实验性特性(如 component.UseLocalHostAsDefaultHost),多个特性用逗号分隔 | 空 |
--metrics-addr <addr> | 暴露 Collector 自身指标的 HTTP 地址(如 :8888) | :8888 |
容器运行时可通过环境变量注入配置,常用变量如下:
| 环境变量 | 描述 | 示例值 |
|---|---|---|
AWS_REGION | AWS 区域(必填,用于 AWS 服务认证与资源定位) | us-east-1 |
AWS_ACCESS_KEY_ID | AWS 访问密钥 ID(可选,若容器运行在 AWS 服务内,建议使用 IAM 角色认证) | AKIAEXAMPLE |
AWS_SECRET_ACCESS_KEY | AWS 密钥(与 AWS_ACCESS_KEY_ID 配对使用) | secret |
OTEL_CONFIG | 配置文件路径(覆盖 --config 参数) | /custom/config.yaml |
OTEL_LOG_LEVEL | 日志级别(覆盖 --log-level 参数) | debug |
HTTP_PROXY/HTTPS_PROXY | 代理服务器地址(用于 Collector 访问外部服务,如导出数据至第三方系统) | [***] |
otelcol)对文件有读取权限,避免因权限不足导致配置加载失败。AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY,最后是本地 AWS 凭证文件(~/.aws/credentials)。resources.limits),避免 OOM 或性能瓶颈。amazon/aws-otel-collector 的分支版本,使用前需确认与目标 OpenTelemetry 组件(如客户端 SDK)的版本兼容性。docker run --rm my-fork/aws-otel-collector:latest --config=config.yaml --validate 验证配置文件语法正确性。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务