阿里云 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 集群(手动安装)

  1. 下载安装包(国内 / 海外二选一)
# 国内
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
  1. 修改配置 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
  1. 执行安装
cd loongcollector-custom-k8s-package
bash k8s-custom-install.sh install
  1. 检查 Pod 状态
kubectl get po -n kube-system | grep loongcollector-ds

三、步骤 2:创建业务 Logstore

  1. 登录

    SLS 控制台

  2. 进入自动创建的 Project(k8s-log-xxx
  3. 左侧 日志存储 > 日志库+ 创建 Logstore
  4. 填写名称(如 app-lognginx-log),其余默认 → 确定

四、步骤 3:创建采集配置(二选一)

配置 1:采集容器标准输出(stdout/stderr)

  1. 进入目标 Logstore → 数据接入
  2. 搜索模板:K8s - 标准输出 - 新版 → 立即接入
  3. 机器组配置:
    • 选择 ACK Daemonset / 自建集群 Daemonset
    • 勾选 k8s-group-${cluster_id} → 添加到应用机器组 → 下一步
  4. Logtail 配置:
    • 配置名称:如 k8s-stdout-ds
    • 打开 标准输出 / 标准错误
  5. 查询分析:自动生成索引 → 完成

六、步骤 4:高级配置

1. 多行日志(Java 堆栈)

  • 处理配置 → 开启 多行模式
  • 类型:自定义
  • 行首正则:^\[\d+-\d+-\w+:\d+:\d+,\d+]

2. 日志脱敏

  • 插件:脱敏处理
  • 方式:const(替换为 ***)/md5
  • 表达式匹配手机号、身份证、密码等

3. 容器过滤

  • 按 Namespace / Pod 名 / 容器名 / Pod 标签正则过滤
  • 示例:Namespace 白名单 ^(default|prod)$

4. 日志标签富化

  • 添加 Pod 标签、环境变量到日志字段,便于溯源

七、步骤 5:验证与排错

1. 验证采集

  1. 进入 SLS → Logstore → 查询分析
  2. 执行查询 *,查看是否有日志流入

2. 无数据排查(必看)

  1. 检查是否有增量日志(无新增不采集)
  2. 检查 LoongCollector Pod
kubectl get po -n kube-system | grep loongcollector
  1. 进入容器查看日志
kubectl exec -it -n kube-system loongcollector-ds-xxx -- bash
cd /usr/local/ilogtail
cat ilogtail.LOG
cat logtail_plugin.LOG
  1. 检查机器组心跳
    • SLS → 资源 → 机器组 → 状态必须为 ok
  2. 检查采集过滤条件是否过严

八、常见注意事项

  1. LoongCollector 与 logtail-ds 不可共存,升级需先卸载旧版
  2. 容器日志路径必须是绝对路径,不支持软链接
  3. 采集路径需 ≥ 挂载点路径,否则无法读取
  4. 不要修改 / 删除 config-operation-log
  5. 跨账号采集:在 values.yaml 填写目标账号 AK/UID/Project

九、后续使用

  • 查询分析:配置索引后用 SQL 分析日志
  • 可视化:创建仪表盘展示 QPS、延迟、错误率
  • 告警:配置异常告警(如 5xx 报错、日志断流)
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐