赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 弹性容器实例 ECI
  4. 操作指南
  5. 日志
  6. 通过Sidecar方式采集日志

通过Sidecar方式采集日志

  • 日志
  • 发布于 2025-04-15
  • 0 次阅读
文档编辑
文档编辑

阿里云日志服务SLS支持通过Sidecar模式采集ECI日志。本文介绍如何部署Sidecar容器,以及创建Logtail配置,实现容器日志的采集。

前提条件

  • 已创建ACK Serverless集群。具体操作,请参见创建集群。

  • 已开通日志服务。

    登录日志服务控制台时,如果没有开通日志服务,将收到相关提示,您可以根据页面提示开通。

背景信息

阿里云日志服务SLS支持在ECI中通过Sidecar模式采集日志,即在每个ECI实例中,除业务容器外,运行一个Sidecar容器作为日志Agent,用于采集业务容器产生的日志。

重要

Sidecar模式基于Logtail实现,Logtail必须和业务容器共享日志目录,业务容器将日志写入到共享目录中,Logtail通过监控共享目录中日志文件的变化并采集日志。

采集的日志可以分为以下两种:

  • 标准输出

    采集标准输出依赖于ECI的stdlog卷。创建Pod时可以将该卷挂载到Sidecar容器上,Sidecar可以直接以文件的方式访问ECI基础组件收集的标准输出日志。

  • 文本文件

    采集文本文件可以通过Pod内共享的Volume实现。Pod内同一个Volume可以挂载到多个容器,Sidecar可以直接收集业务容器输出到对应Volume内的文本文件。

步骤一:部署Sidecar容器

  1. 创建一个包含Sidecar容器的Deployment。

    YAML内容示例如下,请根据实际情况将占位符变量替换为实际值。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx-log-sidecar-demo
      name: nginx-log-sidecar-demo
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx-log-sidecar-demo
      template:
        metadata:
          labels:
            app: nginx-log-sidecar-demo
        spec:
          containers:
            - name: nginx-log-demo
              image: registry-vpc.${RegionId}.aliyuncs.com/log-service/docker-log-test:latest
              command:
                - /bin/mock_log
              args:
                - '--log-type=nginx'
                - '--stdout=false'
                - '--stderr=true'
                - '--path=/var/log/nginx/access.log'
                - '--total-count=100000000'
                - '--logs-per-sec=100'
              imagePullPolicy: Always
              volumeMounts:
                - mountPath: /var/log/nginx
                  name: nginx-log
            - name: logtail
              image: registry-vpc.${RegionId}.aliyuncs.com/log-service/logtail:latest
              env:
                - name: ALIYUN_LOGTAIL_USER_ID
                  value: "${Aliuid}"
                - name: ALIYUN_LOGTAIL_USER_DEFINED_ID
                  value: nginx-log-sidecar
                - name: ALIYUN_LOGTAIL_CONFIG
                  value: /etc/ilogtail/conf/${RegionId}/ilogtail_config.json
                - name: aliyun_logs_machinegroup
                  value: k8s-group-app-alpine
              imagePullPolicy: Always
              volumeMounts:
                - mountPath: /var/log/nginx
                  name: nginx-log
                - mountPath: /stdlog
                  name: stdlog
          volumes:
            - emptyDir: {}        #文本文件日志存储到emptyDir卷
              name: nginx-log
            - name: stdlog        #标准输出日志存储到stdlog卷
              flexVolume:
                driver: alicloud/pod-stdlog
  2. 获取Pod信息。

    kubectl get pods -l app=nginx-log-sidecar-demo

    预期返回结果如下:

    NAME                                      READY   STATUS    RESTARTS   AGE
    nginx-log-sidecar-demo-84587d9796-krn5z   2/2     Running   0          32m
    nginx-log-sidecar-demo-84587d9796-vhnld   2/2     Running   0          32m
  3. 查看日志。

    • 通过kubectl命令查看日志

      Sidecar1

    • 通过弹性容器实例控制台查看日志

      Sidecar2

步骤二:配置Logtail采集日志

部署Sidecar容器后,您需要在日志服务控制台创建Logtail配置来采集日志。

  1. 登录日志服务控制台。

  2. 在接入数据区域,单击正则 - 文本日志 。

  3. 选择日志空间,单击下一步。

    请选择Project和Logstore。如果没有,您也可以直接单击立即创建进行创建。

    说明

    系统默认会为每个K8s集群生成一个名为k8s-log-{K8s集群ID}的Project。

  4. (可选)创建机器组。

    如果您已有可用的机器组 ,可直接单击使用现有机器组,跳过该步骤。

    1. 按界面提示确认已创建机器组,然后单击确认安装完毕。

    2. 配置机器组相关参数,单击下一步。

      机器组标识选择用户自定义标识,将步骤一配置的环境变量ALIYUN_LOGTAIL_USER_DEFINED_ID填入用户自定义标识框中。本文示例为nginx-log-sidecar。

      Sidecar3

  5. 配置机器组。

    选择目标机器组,将该机器组从源机器组移动到应用机器组,然后单击下一步。

  6. 设置Logtail配置。

    Logtail支持通过极简模式、正则模式、分隔符模式、JSON模式等模式采集文本日志。更多信息,请参见概述。

    说明

    是否为Docker文件的配置项请保持关闭。

    • 标准输出示例

      采集标准输出时,日志路径为stdlog卷在容器的挂载路径,本文示例为/stdlog。

      Sidecar4

    • 文本文件示例

      采集文本文件时,日志路径为共享Volume在容器的挂载路径,本文示例为/var/log/nginx。

      Sidecar5

  7. 查询分析配置。

    默认已设置索引,您也可以根据业务需求,重新设置索引。具体操作,请参见配置索引。

  8. 查看采集的ECI日志。

    完成上述配置后,日志服务SLS即可开始采集ECI日志。下图为标准输出日志采集到SLS日志库的效果示例。

    Sidecar6

相关文章

通过CRD采集应用日志 2025-04-15 17:15

本文介绍如何在ACK Serverless集群中配置CRD并进行应用日志采集管理。 前提条件

通过Pod环境变量采集应用日志 2025-04-15 17:15

阿里云日志服务SLS(Log Service)是针对日志数据的一站式服务,让您无需开发就能快捷完成日志数据采集、消费、投递以及查询分析等功能。ACK Serverless集群提供了日志服务托管功能。您可以在ACK Serverless集群中使用SLS环境变量,将业务容器的标准输出和日志文件收集到SL

Job类型任务如何采集日志 2025-04-15 17:15

本文将为您介绍如何针对Job类型任务场景采集日志到日志系统。 前提条件

通过Sidecar方式采集日志 2025-04-15 17:15

阿里云日志服务SLS支持通过Sidecar模式采集ECI日志。本文介绍如何部署Sidecar容器,以及创建Logtail配置,实现容器日志的采集。 前提条件

收集ACK Serverless集群控制平面组件日志 2025-04-15 17:15

通过收集控制平面(Control Plane)组件日志可以帮助您更安全有效地运维集群,容器服务 Serverless 版支持收集ACK Serverless集群控制平面组件日志,您可以将控制平面组件日志从控制层采集到您账号中的日志服务SLS的Log Project中,以便集中管理和分析日志。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号