如何修改Airbyte启动脚本将EC2上Docker容器日志发送到CloudWatch
将Airbyte EC2部署的日志发送到CloudWatch的配置方案
由于./run-ab-platform.sh是通过Docker Compose启动所有Airbyte服务,无需直接修改该脚本,而是通过调整Docker Compose配置或Docker守护进程设置来实现日志转发到CloudWatch。以下是具体步骤:
方案一:修改Airbyte Docker Compose配置(仅Airbyte服务生效)
1. 编辑Airbyte的docker-compose.yml文件
进入Airbyte安装目录,找到docker-compose.yml,添加全局日志配置模板,再为每个服务引用该配置:
# 在文件最顶部添加全局日志模板 x-logging: &default-cloudwatch-logging driver: awslogs options: awslogs-region: us-east-1 awslogs-group: airbyte-ec2-DockerContainer # 可选:为每个服务生成独立日志流,便于区分 awslogs-stream-prefix: "{{.Name}}" # 为每个Airbyte服务添加logging配置 services: airbyte-api-server: logging: *default-cloudwatch-logging # 保留原服务的其他配置(镜像、端口、环境变量等) worker: logging: *default-cloudwatch-logging # 保留原服务配置 webapp: logging: *default-cloudwatch-logging # 保留原服务配置 temporal: logging: *default-cloudwatch-logging # 保留原服务配置 server: logging: *default-cloudwatch-logging # 保留原服务配置 proxy: logging: *default-cloudwatch-logging # 保留原服务配置 db: logging: *default-cloudwatch-logging # 保留原服务配置 connector-builder-server: logging: *default-cloudwatch-logging # 保留原服务配置 cron: logging: *default-cloudwatch-logging # 保留原服务配置 init: logging: *default-cloudwatch-logging # 保留原服务配置 bootloader: logging: *default-cloudwatch-logging # 保留原服务配置
2. 重启Airbyte服务使配置生效
# 停止当前运行的服务 ./run-ab-platform.sh down # 重新启动服务 ./run-ab-platform.sh -b
方案二:配置Docker守护进程全局日志驱动(所有容器生效)
如果希望EC2上所有Docker容器默认将日志发送到CloudWatch,可修改Docker daemon配置:
1. 创建/编辑Docker daemon配置文件
sudo nano /etc/docker/daemon.json
添加以下内容:
{ "log-driver": "awslogs", "log-opts": { "awslogs-region": "us-east-1", "awslogs-group": "airbyte-ec2-DockerContainer", "awslogs-stream-prefix": "ec2-docker" } }
2. 重启Docker服务
sudo systemctl restart docker
3. 重启Airbyte服务
./run-ab-platform.sh down && ./run-ab-platform.sh -b
关键注意事项
- 确认EC2实例绑定的IAM角色已具备CloudWatch Logs的写入权限(如
CloudWatchLogsFullAccess) - 私有子网环境下,需确保EC2可通过VPC端点访问CloudWatch Logs服务,否则日志无法上传
- 日志流前缀可帮助你在CloudWatch日志组中快速区分不同服务的日志,建议启用
内容的提问来源于stack exchange,提问作者macromind
相关产品推荐
相关产品推荐

