阿里云 SLS DaemonSet 模式采集 K8s 日志 完整部署教程
本文基于 DaemonSet + LoongCollector(新一代 Logtail),覆盖 ACK 集群 / 自建 K8s 集群,从安装采集组件 → 创建日志库 → 配置采集 → 结构化解析 → 验证排错,一站式部署。
一、前置说明
1. 核心概念
- Project:SLS 资源隔离单元,全局唯一
- Logstore:日志存储单元
- LoongCollector :SLS 新一代采集 Agent,与旧 logtail-ds 不可共存
- DaemonSet:每节点 1 个采集容器,资源占用低,适合全集群统一采集
2. 环境要求
- K8s 1.6+
- 已安装 kubectl 并连接集群
- 账号具备 AliyunLogFullAccess 权限
- 容器运行时:Docker /containerd(需访问 sock 权限)
二、步骤 1:安装 LoongCollector(二选一)
自建 K8s 集群(手动安装)
-
下载安装包(国内 / 海外二选一)
国内
wget https://aliyun-observability-release-cn-shanghai.oss-cn-shanghai.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz
tar xvf loongcollector-custom-k8s-package.tgz
chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.sh -
修改配置
loongcollector/values.yaml(必填项)projectName: "k8s-log-custom-xxx" # 自定义Project名
region: "cn-beijing" # 地域
aliUid: "123456789" # 阿里云主账号UID
accessKeyID: "xxx" # 具备SLS权限AK
accessKeySecret: "xxx"
clusterID: "custom-k8s-01" # 自定义集群ID
net: Internet # 公网/内网Intranet -
执行安装
cd loongcollector-custom-k8s-package
bash k8s-custom-install.sh install -
检查 Pod 状态
kubectl get po -n kube-system | grep loongcollector-ds
三、步骤 2:创建业务 Logstore
-
登录 SLS 控制台
-
进入自动创建的 Project(
k8s-log-xxx) -
左侧 日志存储 > 日志库 → + 创建 Logstore
-
填写名称(如
app-log、nginx-log),其余默认 → 确定
四、步骤 3:创建采集配置(二选一)
配置 1:采集容器标准输出(stdout/stderr)
- 进入目标 Logstore → 数据接入
- 搜索模板:K8s - 标准输出 - 新版 → 立即接入
- 机器组配置:
- 选择 ACK Daemonset / 自建集群 Daemonset
- 勾选
k8s-group-${cluster_id}→ 添加到应用机器组 → 下一步
- Logtail 配置:
- 配置名称:如
k8s-stdout-ds - 打开 标准输出 / 标准错误
- 配置名称:如
- 查询分析:自动生成索引 → 完成
六、步骤 4:高级配置
1. 多行日志(Java 堆栈)
- 处理配置 → 开启 多行模式
- 类型:自定义
- 行首正则:
^\[\d+-\d+-\w+:\d+:\d+,\d+]
2. 日志脱敏
- 插件:脱敏处理
- 方式:const(替换为 ***)/md5
- 表达式匹配手机号、身份证、密码等
3. 容器过滤
- 按 Namespace / Pod 名 / 容器名 / Pod 标签正则过滤
- 示例:Namespace 白名单
^(default|prod)$
4. 日志标签富化
- 添加 Pod 标签、环境变量到日志字段,便于溯源
七、步骤 5:验证与排错
1. 验证采集
- 进入 SLS → Logstore → 查询分析
- 执行查询
*,查看是否有日志流入
2. 无数据排查(必看)
-
检查是否有增量日志(无新增不采集)
-
检查 LoongCollector Pod
kubectl get po -n kube-system | grep loongcollector
-
进入容器查看日志
kubectl exec -it -n kube-system loongcollector-ds-xxx -- bash
cd /usr/local/ilogtail
cat ilogtail.LOG
cat logtail_plugin.LOG -
检查机器组心跳
- SLS → 资源 → 机器组 → 状态必须为 ok
-
检查采集过滤条件是否过严
八、常见注意事项
- LoongCollector 与 logtail-ds 不可共存,升级需先卸载旧版
- 容器日志路径必须是绝对路径,不支持软链接
- 采集路径需 ≥ 挂载点路径,否则无法读取
- 不要修改 / 删除
config-operation-log - 跨账号采集:在 values.yaml 填写目标账号 AK/UID/Project
九、后续使用
- 查询分析:配置索引后用 SQL 分析日志
- 可视化:创建仪表盘展示 QPS、延迟、错误率
- 告警:配置异常告警(如 5xx 报错、日志断流)