更新时间:2025-08-12 GMT+08:00

日志上报LTS

应用场景

云日志服务(Log Tank Service,简称LTS)通过海量日志数据的分析与处理,可以将云服务和应用程序的可用性和性能最大化,CCI 2.0支持将pod内的日志上报到云日志服务LTS。

  1. 登录华为云云日志服务LTS控制台,创建日志组。

  2. 在创建出的日志组下创建日志流。

  3. 登录云容器实例 CCI2.0控制台,在左侧导航栏中选择“负载管理”,选择“无状态负载”并单击“YAML创建”。

  4. YAML示例如下:

    apiVersion: cci/v2
    kind: Deployment
    metadata:
      name: test
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: test
      template:
        metadata:
          annotations:
            logconf.k8s.io/fluent-bit-log-type: lts      # 日志上报类型
            logconfigs.logging.openvessel.io: "{\"default-config\":{\"container_files\":{\"container-0\":\"stdout.log;/root/out.log;/data/emptydir-volume/*.log\"},\"regulation\":\"/(?<log>\\\\d+-\\\\d+-\\\\d+ \\\\d+:\\\\d+:\\\\d+.*)/\",\"lts-log-info\":{\"349b50f7-f6ba-4768-86f9-e7f84ab677c0\":\"8a9e0589-c3b5-4ed1-b8cd-1e8a54612d0e\"}}}"  # 日志上报配置
          labels:
            app: test
        spec:
          containers:
          - image: centos:latest
            command: ['sh', '-c', "while true; do echo hello; touch /root/out.log; echo hello >> /root/out.log; touch /data/emptydir-volume/emptydir.log; echo hello >> /data/emptydir-volume/emptydir.log; sleep 10; done"]     # 模拟日志写入
            volumeMounts:
            - name: emptydir-volume
              mountPath: /data/emptydir-volume
            - name: emptydir-memory-volume
              mountPath: /data/emptydir-memory-volume
            name: container-0
            resources:
              limits:
                cpu: 100m
                memory: 100Mi
              requests:
                cpu: 100m
                memory: 100Mi
          volumes:
          - name: emptydir-volume
            emptyDir: {}
          - name: emptydir-memory-volume
            emptyDir:
              sizeLimit: 1Gi
              medium: Memory
      strategy:
        type: RollingUpdate
        rollingUpdate:
          maxSurge: 1
          maxUnavailable: 0

    annotation中"logconfigs.logging.openvessel.io"为日志上报相关的各类配置项,为json形式,各字段介绍如下:

    {
        "default-config": { // 配置名称,可自定义名称
            "container_files": { // 支持设置多个容器的日志收集路径(stdout.log表示标准输出,/root/out.log表示rootfs(包含挂卷)下文本日志,/data/emptydir-xxx/*.log表示rootfs(包含挂卷)下文本目录)
                "container-0": "stdout.log;/root/out.log;/data/emptydir-volume/*.log",
                ...
            },
            "regulation": "/(?<log>\\d+-\\d+-\\d+ \\d+:\\d+:\\d+.*)/", // 多行日志收集正则匹配规则
            "lts-log-info": { // 仅支持设置单个日志组和日志流
                "f938a11a-678e-4631-80a0-3667be1280f7": "a248c18b-61ed-4de2-8f7f-c042b78bb0fd" // 日志组id:日志流id
            }
        },
        "other-config": { // 支持多配置
            ...
        }
    }

  5. 等待负载变为运行中状态,单击“日志”查看Pod上报的日志。