Azure Ubuntu虚拟机Docker容器stdout日志云原生采集方案咨询
Azure 虚拟机容器Stdout日志采集方案
针对你在Azure Ubuntu虚拟机上用Docker Compose运行容器、需采集stdout日志到Azure控制台的需求,以下是符合云原生、无额外运维负担、不侵入应用代码的解决方案:
方案一:Docker原生Azure Monitor日志驱动(推荐)
该方案利用Docker官方提供的azuremonitor日志驱动,直接将容器stdout日志推送至Azure Monitor日志工作区,无需修改应用代码、无需日志文件轮转。
配置步骤
- 修改Docker守护进程配置
编辑/etc/docker/daemon.json文件,添加日志驱动配置:{ "log-driver": "azuremonitor", "log-opts": { "log-analytics-workspace-id": "<你的Log Analytics工作区ID>", "log-analytics-workspace-key": "<你的Log Analytics工作区密钥>" } } - 重启Docker服务
执行命令使配置生效:sudo systemctl restart docker - Docker Compose服务适配
- 全局配置:所有Docker Compose服务会默认继承Docker守护进程的日志驱动,无需额外修改
docker-compose.yml。 - 单独配置(可选):如果需要为特定服务指定日志参数,在服务块中添加
logging配置:services: your-app: image: your-app-image:latest logging: driver: azuremonitor options: log-analytics-workspace-id: "<你的Log Analytics工作区ID>" log-analytics-workspace-key: "<你的Log Analytics工作区密钥>" tag: "{{.Name}}" # 可选,添加容器名标签便于日志过滤
- 全局配置:所有Docker Compose服务会默认继承Docker守护进程的日志驱动,无需额外修改
日志查看
登录Azure控制台,进入对应的Log Analytics工作区,在“日志”界面使用以下查询语句查看容器日志:
ContainerLog | where ContainerName == "your-app-container-name" # 可选,过滤指定容器 | sort by TimeGenerated desc
方案优势
- 云原生集成:基于Docker官方驱动与Azure Monitor原生对接,无需第三方组件
- 零运维负担:直接采集stdout,无需处理日志文件、轮转等运维工作
- 无代码侵入:应用无需引入任何云厂商客户端库,保持跨Azure/AWS/GCP的代码一致性
注意事项
- Log Analytics工作区的ID和密钥可从工作区的“代理管理”页面获取
- 驱动支持自定义日志标签、字段,可通过
log-opts扩展配置 - 确保虚拟机已配置出站网络权限,允许访问Azure Monitor服务端点
内容的提问来源于stack exchange,提问作者Syed
相关产品推荐
相关产品推荐

