配置日志采集

更新时间:
复制 MD 格式

本文介绍 EAS 服务日志采集到 SLS 的三种方式及其操作步骤,帮助您根据业务需求选择合适方案。

方案概述

EAS 服务日志支持采集到 SLS ,提供三种接入方式。请可以根据实际使用场景选择合适的方式。

维度

EAS 洞察 Tab 接入

云监控 2.0 接入中心

SLS Logtail 手动配置

适用场景

快速接入单个服务的日志

批量接入多个服务的日志

需要采集文件日志、自定义解析 等高阶功能

日志类型

仅标准输出日志

仅标准输出日志

标准输出日志 + 文件日志

操作复杂度

最低,在 EAS 服务详情页一键开启

中等,需在云监控2.0控制台配置

最高,需手动创建机器组和配置 Logtail

场景一:快速接入单个服务日志(EAS 洞察 Tab)

如果您想快速接入某个 EAS 服务的标准输出日志到SLS,可以在 EAS 服务详情页的洞察 Tab 中一键开启。开启后,日志将自动采集到 SLS 中。

操作步骤如下:

  1. 登录PAI 控制台,在页面上方选择目标地域。

  2. 在左侧导航栏选择模型在线服务(EAS),如有多个工作空间,请选择目标工作空间进入。

  3. 推理服务页签,单击目标服务名称,进入服务详情页。

  4. 在服务详情页,单击洞察页签。

  5. 根据该地域的接入状态,执行对应操作:

    • 该地域从未接入过:在步骤 2初始化资源中,单击开启洞察,系统会自动完成资源初始化和数据接入。

    • 该地域已接入过:系统会自动完成当前服务实例的接入,无需额外操作。

说明

通过洞察 Tab 接入的服务,在云监控 2.0 的接入管理中会创建一个单实例接入模式的配置,仅采集当前服务的日志。如果需要批量接入多个服务,请参考场景二。

场景二:批量接入多个服务日志(云监控 2.0 接入中心)

如果您需要一次性接入某个地域下多个 EAS 服务的标准输出日志,可以通过云监控 2.0 的接入中心进行批量接入。

  1. 登录云监控2.0控制台,选择与EAS服务同地域的工作空间后,在左侧导航栏单击接入中心

    如没有同地域工作空间,请在左侧导航栏单击云监控2.0右侧的返回按钮,进入工作空间管理,新建工作空间。
  2. 在接入中心页面的搜索框中,输入"模型在线服务 PAI-EAS",单击搜索结果卡片。

  3. 开始接入面板中,根据需要选择账号策略名称实体范围区域无法选择,默认为工作空间所属地域),单击确定。

  4. 接入配置区域,继续配置:

    • 接入名称:非必填,会默认生成。建议填写自定义名称,便于区分不同接入配置。

    • 选择接入的数据:勾选PAI-EAS 服务日志

  5. 单击确定。切换到接入管理页签,查看接入配置,在操作列单击数据源查看对应的 SLS Logstore 信息。

场景三:自定义日志采集(SLS Logtail 手动配置)

如果您需要采集文件日志,采集日志到指定的ProjectLogStore,或需要对日志进行自定义解析、投递 OSS 等高阶操作,可以通过 SLS Logtail 手动配置日志采集。

不同资源类型的服务在机器组创建方式和 Logtail 配置上存在差异,请根据您使用的资源类型,选择对应的章节完成配置。三种资源类型的核心区别如下:

  • 公共资源组:需要手动创建机器组(使用自定义标识),手动配置 Logtail。

  • 专属资源组:配置SLS后自动创建机器组和 Logtail,如需采集自定义日志再手动补充配置。

  • 资源配额:需要手动创建机器组(使用与公共资源组不同的自定义标识),手动配置 Logtail。

前提条件

请先开通日志服务 SLS,并创建 Project 和 Logstore,详情请参见管理Project创建基础LogStore

公共资源组

步骤一:创建机器组

部署在公共资源组中的服务,需要手工创建机器组。

  1. 登录日志服务控制台,在Project列表区域,单击目标Project。

  2. 在左侧导航栏中,选择资源机器组

  3. 选择机器组右侧的机器组创建机器组

  4. 在创建机器组页面,通过用户自定义标识来创建机器组:

    • 机器组标识::选择用户自定义标识

    • 机器组 Topic:留空。

    • 名称、用户自定义标识:都填写eas-log-group-{region_id},其中 {region_id}替换为服务所在地域 ID(例如张家口为eas-log-group-cn-zhangjiakou)。

  5. 确认已部署使用公共资源的服务后,在机器组页面的状态列表中查看实例心跳状态。OK 表示机器组运行正常。

    说明

    如果没有部署服务,则实例列表显示为空。

步骤二:配置 Logtail

根据需要采集的日志内容配置 Logtail。下文介绍采集容器标准输出和采集容器内文件日志的简单配置,更多配置参考创建并配置日志采集规则自行配置。

采集容器标准输出
  1. 登录日志服务控制台

  2. 在右侧的快速接入数据区域,单击接入数据,选择K8S - 标准输出 - 旧版

  3. 选择目标 Project 和 Logstore,单击下一步

  4. 单击使用已有机器组,并选择步骤一中已手动创建的公共资源组机器组,单击下一步

  5. (可选)在使用自定义镜像部署服务的场景中,如果您不希望采集 EAS 引擎日志,在输入配置中,打开容器过滤,添加容器 label 黑名单标签名填写io.kubernetes.container.name标签值填写easworker

  6. 单击下一步,直到配置结束。

采集容器内文件日志
  1. 在右侧的快速接入数据区域,单击接入数据,选择Kubernetes - 文件

  2. 选择目标 Project 和 Logstore,单击下一步

  3. 选择步骤一中已手动创建的公共资源组机器组,单击下一步

  4. 输入配置区域配置文件路径(即要采集的文件路径地址),并单击下一步

  5. 单击下一步,直到配置结束。

资源配额

步骤一:创建机器组

操作步骤与公共资源组相同,注意用户自定义标识不一样。

重要

资源配额的自定义标识为eas-log-group-{region_id}-for-resource-quota,其中 {region_id}替换为服务所在地域 ID(例如张家口为eas-log-group-cn-zhangjiakou-for-resource-quota

步骤二:配置 Logtail

根据需要采集的日志内容配置 Logtail。下文介绍采集容器标准输出和采集容器内文件日志的简单配置。更多配置参考持续采集主机文本日志自行配置。

采集容器标准输出
  1. 登录日志服务控制台

  2. 在右侧的快速接入数据区域,单击接入数据,选择单行 - 文本日志

    说明

    可以根据实际需求修改接入方式。例如,需要正则匹配采集到的日志,可以选择正则 - 文本日志。如果需要 JSON 解析日志,可以选择Json-文本日志。也可创建后再修改。

  3. 选择目标 Project 和 Logstore,单击下一步

  4. 在机器组配置中如下填写,然后单击下一步

    • 使用场景:选择主机场景

    • 安装环境:选择 ECS

    • 机器组:选择步骤一中已手动创建的资源配额机器组。

  5. 在 Logtail 配置中,填写以下配置:

    • 文件路径:填写/var/log/containers-stdout/{container_name}/*.log。其中{container_name}为容器名。例如,如果您想采集所有自定义容器 log,可以填写/var/log/containers-stdout/worker*/*.log

  6. 单击下一步,直到配置结束。

采集容器内文件日志
  1. 部署服务时,需要通过配置 JSON 声明采集的文件日志所在的目录

    {
      "cloud": {
        "logging": {
          "paths": [
            "/home/admin/logs",
            "/home/workspace/logs",
            "/var/log"
          ]
        },
        //其他配置略
        "networking": {
          "security_group_id": "sg-xxxxx",
          "vswitch_id": "vsw-xxxxx",
          "vpc_id": "vpc-xxxxx",
        }
      }
    }
  2. 在右侧的快速接入数据区域,单击接入数据,选择单行 - 文本日志

  3. 在机器组配置中如下填写,然后单击下一步

    • 使用场景:选择主机场景

    • 安装环境:选择 ECS

    • 机器组:选择步骤一中已手动创建的资源配额机器组。

  4. 在 Logtail 配置中,填写以下配置:

    • 类型:选择文本日志采集

    • 文件路径:填写要采集的日志文件,必须是已在服务配置 JSON 中声明过的路径。如/home/admin/logs/*.log

    • 最大目录监控深度设置为0

  5. 单击下一步,直到配置结束。

专属资源组

步骤一:创建机器组

与公共资源组和资源配额不同,专属资源组无需手动创建机器组。您只需在 PAI 控制台为专属资源组配置 SLS,系统会自动完成以下操作:

  • 在 SLS 中创建机器组,名称格式为 eas-sls-{resource-id}-mg(resource-id 为资源组 ID)。

  • 在指定的 Logstore 中创建 Logtail,用于采集 EAS 框架日志。

操作步骤如下:

  1. 登录PAI 控制台,在页面上方选择目标地域。

  2. 在左侧导航栏选择AI计算资源 > 资源池

  3. EAS推理资源 > 专属资源组 页签,单击资源组名称,进入专属资源组详情页面。

  4. 在专属资源组详情页面,单击配置SLS

  5. 写入SLS配置对话框,选择SLSProjectLogStore,并单击确定

步骤二:配置 Logtail

专属资源组配置SLS后,已自动创建 Logtail 用于采集 EAS 框架日志。

如需采集自定义日志,参考公共资源组-配置 Logtail,注意机器组选择步骤一中EAS自动创建的专属资源组机器组。

常见问题

Q:如何关闭PAI-EAS服务的SLS日志采集?

根据您使用的接入方式,执行对应的关闭操作:

  • 通过洞察 Tab 或云监控 2.0 接入中心开启的(场景一、场景二):登录云监控 2.0 控制台,在接入管理中找到对应的接入配置,删除该接入。

  • 专属资源组(场景三):在 PAI 控制台进入专属资源组详情页,单击配置 SLS,在下拉框中选择关闭SLS配置。

  • 公共资源组或资源配额(场景三):登录日志服务控制台,删除对应的 Logtail 配置。

Q:专属资源组配置 SLS 后日志采集不全或与流量不匹配怎么办?

日志缺失或日志量与实际请求流量不一致时,请按以下顺序排查:

  1. 检查 Logtail 配置中的容器过滤规则是否正确。过滤规则设置不当会导致目标容器的日志未被采集。

  2. 确认 EAS 服务关联角色 AliyunServiceRoleForEAS 是否具有足够的 SLS 写入权限。权限不足可能导致部分日志写入失败。

  3. 参考本文重新核对日志采集配置及服务关联角色权限。

Q:如何查询哪些 PAI-EAS 服务正在写入 SLS 日志及各自的日志量?

在目标 Logstore 的查询分析页面执行以下查询语句:

* | select service_name, count(1) as log_count where service_name != '' group by service_name order by log_count desc

该语句按服务名(service_name)聚合统计各服务的日志量(log_count),并按日志量降序排列,可帮助识别正在写入日志的服务,便于批量管理或关闭采集操作。可结合上文「Q:如何关闭PAI-EAS服务的SLS日志采集?」条目,先定位再关闭。