You need to enable JavaScript to run this app.
导航

使用环境变量采集容器日志

最近更新时间2023.11.23 17:39:04

首次发布时间2023.09.04 19:45:20

容器服务集群基于火山引擎日志服务,允许您通过配置容器的环境变量,快速完成集群中容器的日志采集,包括标准输出日志和文档路径日志。本文为您介绍如何通过配置容器的环境变量,实现容器日志的采集。

功能概述

容器服务支持在创建容器时,使用环境变量配置该容器的日志采集功能,将指定的日志采集到日志服务产品中。支持的配置参数如下:

  • 日志采集类型:包括 容器标准输出容器文件路径。当日志采集模式为 容器文件路径 时,允许指定日志文件的具体路径。
  • 日志项目:日志项目是日志数据的项目管理单元,用于资源隔离和控制,您可以使用日志项目对应一个应用、业务或产品。
  • 日志主题:日志主题是日志数据的采集、读写单元。一个日志项目可以包括多个日志主题,您可以使用日志主题对容器日志进行细分。
  • 日志最大存储时间:日志的保存时间,可以指定具体的保存时间,或永久保存。
  • 日志分区数:日志分区是日志读写的基本单元,所有日志数据都保存在分区中。每个分区提供一定的读写能力,建议根据实际业务需求合理规划日志分区的数量。
  • 自动分裂日志分区和分裂数:允许自动分裂日志分区,并配置分裂数,扩大日志主题的整体读写能力。
  • 日志标识:允许对日志进行标识。

使用限制

  • 通过环境变量来配置容器日志时,允许系统自动创建 日志项目日志主题。该操作可能会导致使用过程中超过资源配额。因此在使用该功能前,建议您首先在日志服务的配额中心 申请资源配额

    说明

    日志服务产品的默认资源配额,请参见 使用限制

  • 删除容器时,系统不会自动删除容器对应的 日志项目日志主题。如需删除,您需要登录日志服务控制台,手工删除,详情请参见 删除日志项目删除日志主题

前提条件

  • 已开通日志服务。若未开通,请登录 日志服务控制台,根据控制台向导提示,开通服务。
  • 已安装 log-collector 组件,并升级到 v1.2.4 及以上版本,详情请参见 安装组件
  • (可选)已在日志服务中创建 日志项目 和 日志主题。详细操作,请参见 日志项目 和 日志主题

    说明

    您可以在配置创建容器前,创建 日志项目 和 日志主题。也可以创建容器时,使用环境变量自动创建 日志项目 和 日志主题

配置日志采集

采集标准输出日志

您可以在创建应用时,通过配置环境变量来采集容器标准输出的日志。以创建无状态负载为例,操作步骤如下:

  1. 登录 容器服务控制台
  2. 在左侧菜单栏中选择 集群,并在右侧集群列表中选择目标集群。
  3. 单击集群名称,进入集群配置页面。
  4. 在左侧菜单栏中选择 工作负载 > 无状态负载。 单击 使用 Yaml 创建,部署应用。
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: log-app-demo # 应用的名称
      namespace: default # 应用所在的命名空间
    spec: 
      replicas: 1 # 应用的副本数
      selector: 
        matchLabels: 
          app: nginx
      template: 
        metadata: 
          labels: 
            app: nginx
        spec:
          containers:
          - env: 
            - name: volc_logs_demo # 采集容器标准输出的日志
              value: stdout
            - name: volc_logs_demo_project # 指定日志项目
              value: doc-demo
            - name: volc_logs_demo_topic # 指定日志主题
              value: pod-log
            name: nginx # 容器名称
            image: nginx:latest # 应用镜像的地址和版本
            ports:
            - containerPort: 80 # 容器端口
    

    说明

    更多环境变量说明,请参见 环境变量说明

  5. 单击 确定,完成配置。

采集文件路径日志

您可以在创建应用时,通过配置环境变量来采集容器指定路径的日志。以创建无状态负载为例,操作步骤如下:

  1. 登录 容器服务控制台
  2. 在左侧菜单栏中选择 集群,并在右侧集群列表中选择目标集群。
  3. 单击集群名称,进入集群配置页面。
  4. 在左侧菜单栏中选择 工作负载 > 无状态负载。 单击 使用 Yaml 创建,部署应用。
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: log-app-demo # 应用的名称
      namespace: default # 应用所在的命名空间
    spec: 
      replicas: 1 # 应用的副本数
      selector: 
        matchLabels: 
          app: nginx
      template: 
        metadata: 
          labels: 
            app: nginx
        spec:
          containers:
          - env: 
            - name: volc_logs_demo # 采集容器指定路径文件的日志
              value: /var/log/nginx/access.log
            - name: volc_logs_demo_project # 指定日志项目
              value: doc-demo
            - name: volc_logs_demo_topic # 指定日志主题
              value: pod-log
            name: nginx # 容器名称
            image: nginx:latest # 应用镜像的地址和版本
            ports:
            - containerPort: 80 # 容器端口
    

    说明

    更多环境变量说明,请参见 环境变量说明

  5. 单击 确定,完成配置。

查看日志

应用创建完成后,您可以登录日志服务控制台,查看和检索日志。

  1. 登录 日志服务控制台
  2. 在左侧菜单栏中选择 日志服务 > 日志项目管理。在日志项目列表中,单击目标日志项目名称,进入日志项目详情。
    alt
  3. 在左侧菜单栏中选择 详情,在右侧 日志主题 列表内,可以查到对应的日志主题。
    alt
  4. 在左侧菜单栏中选择 检索分析,并选择对应的 日志主题,即可对容器日志进行检索和分析。
    alt

    说明

    更多日志的检索和分析方法,请参见 日志服务文档

环境变量说明

容器日志采集相关的环境变量,如下表所示。

说明

  • 使用环境变量配置容器日志采集时,默认采集方式为极简模式。如需解析日志内容,建议使用 日志服务控制台
  • 下表环境变量中的{key}表示日志服务中采集配置的名称,需保持在集群内唯一。
环境变量说明示例注意事项

volc_logs_{key}

必选。配置日志采集模式,取值为:

  • stdout:表示采集容器标准输出日志。
  • 配置日志文件的具体路径,例如/var/log/nginx/access.log,表示采集指定路径的日志。

value为字符串形式,取值范围为 3~63。仅支持小写英文字母、数字和-,且不能以-开头或结尾。

  • 标准输出日志示例。
- name: volc_logs_demo
  value: stdout
  • 文件路径日志示例。
- name: volc_logs_demo
  value: /var/log/nginx/access.log

如果volc_logs_{key}_topic日志主题不存在,则会自动创建名为{key}的日志主题。

volc_logs_{key}_project

必选。指定日志服务的 日志项目

value为字符串形式,取值范围为 3~63。仅支持小写英文字母、数字和-,且不能以-开头或结尾。

- name: volc_logs_demo_project
  value: doc-demo
  • 日志项目需要与集群在相同的地域。
  • 如果日志项目已存在,则使用已存在的日志项目。
  • 如果日志项目不存在,则会自动创建日志项目。

volc_logs_{key}_topic

可选。指定日志服务的 日志主题

value为字符串形式,取值范围为 3~63。仅支持小写英文字母、数字和-,且不能以-开头或结尾。

- name: volc_logs_demo_topic
  value: pod-log
  • 如果日志主题已存在,则使用已存在的日志主题。
  • 如果日志主题不存在,则会自动创建日志主题。

volc_logs_{key}_tags

可选。配置日志标签,用于对日志进行标识。

- name: volc_logs_demo_tags
  value: app=demo

volc_logs_{key}_shard

可选。创建日志主题时,日志分区数。
value为整数形式,取值范围为 1~10。若未配置该环境变量,默认为 1。

- name: volc_logs_demo_shard
  value: 4

如果日志主题已经存在,则该参数不生效。

volc_logs_{key}_shardautosplit

可选。创建日志主题时,是否自动分裂日志分区。取值为:

  • True:(默认)表示自动分裂日志分区。
  • False:表示不自动分裂日志分区。
- name: volc_logs_demo_shardautosplit
  value: True

如果日志主题已经存在,则该参数不生效。

volc_logs_{key}_maxshard

可选。创建日志主题时,日志分区的最大分裂数。
value为整数形式,取值范围为 1~10。若未配置该环境变量,默认值为 10。

说明

volc_logs_{key}_shardautosplitFalse时,该参数不生效。

- name: volc_logs_demo_maxshard
  value: 5

如果日志主题已经存在,则该参数不生效。

volc_logs_{key}_ttl

可选。创建日志主题时,日志的保存时间。
value为整数形式,取值范围为 1~3650,单位为 。取值 3650 表示日志永久保存。若未配置该环境变量,默认值为 30。

- name: volc_logs_demo_ttl
  value: 90

如果日志主题已经存在,则该参数不生效。