使用阿里云 SLS 统一管理 Docker 容器日志

🧭 背景介绍

我们的产品 nCalendar 最近刚刚正式上线,服务稳定性和可用性成为核心关注点。

上线初期,日志监控是最关键、也是最不能出错的一环。需要确保任何错误、异常或性能瓶颈都能第一时间被捕捉、记录和分析。

当前项目包含多个后端服务,虽然已通过 Docker 容器化部署,但每次查看日志还要登录到服务,非常不便,也不利于日志的统一管理、统计和分析,尤其在排查问题时效率低下。

为此,我们决定引入 阿里云日志服务(SLS),统一采集和管理所有 Docker 容器日志,构建标准化的日志监控体系。

之前介绍过一篇采集 Nginx 日志《个人独立站接入阿里云 SLS 日志服务》,流程大体相似,会一个了基本都会,这里再补充一篇 Docker 容器的。

🚦 适用场景

  • 产品已上线,需提升故障定位和响应能力
  • 存在多个服务,或分布在多台宿主机/集群中
  • 希望日志集中管理、长期保存并支持全文检索
  • 需要设置基于日志的实时监控与告警

✅ 方案概览

🛠️ 配置步骤

0️⃣ 在开始之前建议调整 Docker 的日志配置

编辑vim /etc/docker/daemon.json

1
2
3
4
5
6
7
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}

重启 Docker 服务(服务低峰期执行)

1
systemctl restart docker

1️⃣ 创建阿里云日志服务 Project 与 Logstore

  1. 登录阿里云控制台,进入 日志服务 SLS(开通日志服务)。
  2. 创建一个 Project,如 docker-log-project
  3. 在该 Project 下新建一个 Logstore,如 container-logs,建议设置保存期不少于 30 天。

2️⃣ 安装并配置 LoongCollector 客户端

LoongCollector 是阿里云 Logtail 的升级版,专为构建下一代可观测 Pipeline 设计。

这里可以手动安装也可以通过阿里云自动安装。

手动安装命令如下:

1
2
3
4
5
6
7
# 下载安装脚本
export region_id=cn-hangzhou
wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.sh;

# 执行安装命令
chmod a+x loongcollector.sh
./loongcollector.sh install ${region_id}-internet

3️⃣ 配置服务器日志采集

  1. 选择接入数据类型

创建完Logstore后,会提示数据接入向导,点击数据接入向导,并选择 Docker标准输出-旧版:

  1. 选择现有机器组

  1. 填写配置名称

后面就都是直接下一步、下一步即可。

4️⃣ 搜索日志

配置完成后,等待一会日志采集上来就可以查看搜索日志了。

✅ 总结

在产品正式上线后,日志监控是保障稳定运行的核心工具。

借助阿里云日志服务(SLS)统一收集和管理 Docker 容器日志,不仅可以简化排查流程,还能提前预警潜在风险,大幅提升运维响应效率。