本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

aws-for-fluent-bit 是 AWS 官方发布的 Fluent Bit 容器镜像,集成了 AWS 服务专用插件(如 CloudWatch Logs、S3、Kinesis 等),专为容器化环境的日志收集与转发设计。其核心用途是在 AWS 生态(如 ECS Fargate、EKS)中实现轻量级、高效的日志流水线,无需依赖 EFS 等持久化存储即可完成配置,特别适用于无持久存储的场景(如 Fargate)。
官方镜像托管于 AWS ECR Public Gallery,直接拉取即可使用:
docker pull public.ecr.aws/aws-observability/aws-for-fluent-bit:latest
版本标签可指定具体版本(如
2.31.0),推荐使用固定版本避免兼容性问题。
Fluent Bit 配置文件采用 ini 格式,包含 Service(全局配置)、Input(日志输入源)、Filter(日志处理)、Output(日志目标)四个核心模块。
[SERVICE] Flush 5 # 日志刷新间隔(秒) Log_Level info # 日志级别(debug/info/warn/error) Daemon off # 容器环境需设为 off(前台运行) [INPUT] Name tail # 输入插件(tail:监控文件) Path /var/log/containers/*.log # 日志文件路径 Parser docker # 解析器(docker:JSON 格式日志) Tag container.* # 日志标签(用于 Output 路由) [OUTPUT] Name cloudwatch # 输出插件(CloudWatch Logs) Match * # 匹配标签(*:所有日志) region us-east-1 # AWS 区域 log_group_name /ecs/fargate-app # CloudWatch 日志组名称 log_stream_name {HOSTNAME} # 日志流名称(可使用变量)
在 Fargate 等无持久化场景中,配置文件可通过以下方式注入,无需挂载 EFS:
| 方式 | 适用场景 | 实现方式 |
|---|---|---|
| 环境变量注入 | 配置内容较短(< 4KB) | 通过环境变量 CONFIG_CONTENT 传递配置文件内容,启动时写入本地文件。 |
| 任务定义嵌入 | ECS Fargate 任务 | 在任务定义的 containerDefinitions 中通过 command 动态生成配置文件。 |
| 镜像内置配置 | 固定配置场景 | 基于 aws-for-fluent-bit 构建自定义镜像,通过 COPY 指令添加配置文件。 |
通过环境变量注入配置文件,收集本地 /var/log/app.log 日志并发送至 CloudWatch:
docker run -d \ --name aws-fluent-bit \ -v /var/log/app.log:/var/log/app.log \ # 挂载本地日志文件(仅本地测试用) -e AWS_REGION=us-east-1 \ # AWS 区域 -e CONFIG_CONTENT="$(cat <<EOF # 注入配置文件内容 [SERVICE] Flush 5 Log_Level info [INPUT] Name tail Path /var/log/app.log Tag app.log [OUTPUT] Name cloudwatch Match * region \${AWS_REGION} log_group_name /local/test log_stream_name \${HOSTNAME} EOF )" \ public.ecr.aws/aws-observability/aws-for-fluent-bit:latest \ sh -c "echo \"\$CONFIG_CONTENT\" > /fluent-bit/etc/fluent-bit.conf && /fluent-bit/bin/fluent-bit -c /fluent-bit/etc/fluent-bit.conf"
以下为 ECS Fargate 任务定义片段,通过 command 动态生成配置文件,收集容器日志并转发至 CloudWatch:
{ "family": "fargate-fluent-bit-demo", "networkMode": "awsvpc", "requiresCompatibilities": ["FARGATE"], "cpu": "256", "memory": "512", "executionRoleArn": "arn:aws:iam::123456789012:role/ecs-task-execution-role", "containerDefinitions": [ { "name": "aws-fluent-bit", "image": "public.ecr.aws/aws-observability/aws-for-fluent-bit:latest", "essential": true, "environment": [ {"name": "AWS_REGION", "value": "us-east-1"} ], "command": [ "sh", "-c", "cat > /fluent-bit/etc/fluent-bit.conf <<EOF [SERVICE] Flush 5 Log_Level info [INPUT] Name tail Path /var/log/containers/*.log # Fargate 容器日志路径 Parser docker Tag ecs.* [OUTPUT] Name cloudwatch Match * region \${AWS_REGION} log_group_name /ecs/fargate-demo log_stream_name \${HOSTNAME} EOF && /fluent-bit/bin/fluent-bit -c /fluent-bit/etc/fluent-bit.conf" ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/fargate-demo-fluent-bit", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "fluent-bit" } } } ] }
version: '3' services: fluent-bit: image: public.ecr.aws/aws-observability/aws-for-fluent-bit:latest environment: - AWS_REGION=us-east-1 volumes: - ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf # 本地配置文件挂载(开发用) command: /fluent-bit/bin/fluent-bit -c /fluent-bit/etc/fluent-bit.conf
| 参数 | 说明 | 默认值 |
|---|---|---|
Flush | 日志刷新间隔(秒) | 5 |
Log_Level | 日志级别(debug/info/warn/error) | info |
Daemon | 是否后台运行(容器环境需设为 off) | on |
HTTP_Server | 是否启用 HTTP 监控接口 | off |
HTTP_Listen | HTTP 接口监听地址 | 0.0.0.0 |
HTTP_Port | HTTP 接口端口 | 2020 |
tail 插件为例)| 参数 | 说明 | 示例值 |
|---|---|---|
Name | 输入插件名称 | tail |
Path | 监控日志文件路径 | /var/log/containers/*.log |
Parser | 日志解析器(需在配置中定义) | docker(解析 JSON 日志) |
Tag | 日志标签(用于 Output 匹配) | container.${HOSTNAME} |
Refresh_Interval | 文件列表刷新间隔(秒) | 10 |
cloudwatch 插件为例)| 参数 | 说明 | 示例值 |
|---|---|---|
Name | 输出插件名称 | cloudwatch |
Match | 匹配标签(* 表示所有日志) | container.* |
region | AWS 区域 | us-east-1 |
log_group_name | CloudWatch 日志组名称 | /ecs/fargate-app |
log_stream_name | 日志流名称(支持变量) | ${HOSTNAME}-${TAG} |
auto_create_group | 是否自动创建日志组 | On |
retry_limit | 重试次数(0 表示无限重试) | 3 |
| 环境变量名 | 作用 | 示例值 |
|---|---|---|
AWS_REGION | 配置 AWS 服务区域(覆盖插件中的 region 参数) | us-west-2 |
FLB_LOG_LEVEL | 覆盖 SERVICE 中的 Log_Level | debug |
CONFIG_CONTENT | 自定义配置文件内容(需通过启动命令写入文件) | 完整的 Fluent Bit 配置内容 |
AWS_ACCESS_KEY_ID | AWS 访问密钥(非 IAM 角色场景) | AKIAXXXXXXXXXXXX |
AWS_SECRET_ACCESS_KEY | AWS 密钥(非 IAM 角色场景) | xxxxxxxxxxxxxxxxxxxxxxxx |
CloudWatchLogsFullAccess),或通过环境变量配置 AWS 密钥(非推荐)。2.31.0)并参考官方文档。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429