amazon/aws-for-fluent-bitAWS Fluent Bit 镜像是由 AWS 官方维护的 Docker 镜像,基于轻量级日志收集器 Fluent Bit 构建,并集成了 AWS 服务专用插件。该镜像旨在简化容器环境(如 Amazon ECS、Amazon EKS、Docker 主机等)中日志数据的收集、处理和转发,支持将日志无缝发送至 Amazon CloudWatch Logs、Amazon Kinesis Data Firehose、Amazon S3 等 AWS 服务,满足日志集中管理、监控和分析需求。
docker run 启动bashdocker run -d \ --name aws-fluent-bit \ -v /var/log:/var/log:ro \ # 挂载主机日志目录(只读) -v $(pwd)/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf:ro \ # 挂载自定义配置文件 -e AWS_REGION=us-east-1 \ # 设置 AWS 区域 public.ecr.aws/aws-observability/aws-for-fluent-bit:latest
创建 docker-compose.yml 文件:
yamlversion: '3' services: aws-fluent-bit: image: public.ecr.aws/aws-observability/aws-for-fluent-bit:latest container_name: aws-fluent-bit volumes: - /var/log:/var/log:ro # 主机日志目录 - ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf:ro # 自定义配置文件 environment: - AWS_REGION=us-east-1 - AWS_ACCESS_KEY_ID=AKIAEXAMPLE # 可选,本地测试时使用(生产环境建议通过 IAM 角色认证) - AWS_SECRET_ACCESS_KEY=secret # 可选,本地测试时使用 restart: unless-stopped
启动服务:
bashdocker-compose up -d
Fluent Bit 配置通过 fluent-bit.conf 文件定义,包含以下核心部分:
AWS Fluent Bit 镜像支持通过环境变量配置 AWS 认证及核心参数,常用变量如下:
| 环境变量名 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
AWS_REGION | AWS 服务区域(如 us-east-1、eu-west-1) | 是 | - |
AWS_ACCESS_KEY_ID | AWS 访问密钥 ID(本地测试用,生产环境建议使用 IAM 角色) | 否 | 从 IAM 角色获取 |
AWS_SECRET_ACCESS_KEY | AWS 密钥(本地测试用,生产环境建议使用 IAM 角色) | 否 | 从 IAM 角色获取 |
FLB_LOG_LEVEL | Fluent Bit 日志级别(error、warn、info、debug) | 否 | info |
创建 fluent-bit.conf 配置文件:
ini[SERVICE] Flush 5 # 每 5 秒刷新一次日志 Log_Level info Daemon off Parsers_File parsers.conf # 引用内置解析器配置 [INPUT] Name tail # 从文件尾部读取日志 Path /var/log/containers/*.log # 容器日志路径(Docker 默认路径) Parser docker # 使用内置 docker 解析器解析 JSON 日志 Tag container.* # 日志标签,格式为 "container.<文件名>" Refresh_Interval 10 # 每 10 秒刷新文件列表 [FILTER] Name kubernetes # 解析 Kubernetes 元数据(如 Pod 名称、命名空间) Match container.* # 匹配 INPUT 中定义的标签 Kube_URL [***] # Kubernetes API 地址(EKS 环境) Kube_CA_File /var/run/secrets/kubernetes.io/serviceaccount/ca.crt # 证书路径 Kube_Token_File /var/run/secrets/kubernetes.io/serviceaccount/token # Token 路径 [OUTPUT] Name cloudwatch_logs # 输出至 CloudWatch Logs Match * # 匹配所有日志 region ${AWS_REGION} # 引用环境变量中的 AWS 区域 log_group_name /aws/ecs/your-cluster-name # CloudWatch 日志组名称 log_stream_name {namespace}/{pod_name}/{container_name} # 日志流名称(使用 Kubernetes 元数据) auto_create_group On # 自动创建日志组
logs:CreateLogGrouplogs:CreateLogStreamlogs:PutLogEvents-v 挂载自定义 fluent-bit.conf 时,确保文件权限正确(容器内用户需有读权限)。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务