本文介绍 EAS 服务日志采集到 SLS 的三种方式及其操作步骤,帮助您根据业务需求选择合适方案。
方案概述
EAS 服务日志支持采集到 SLS ,提供三种接入方式。请可以根据实际使用场景选择合适的方式。
维度 | EAS 洞察 Tab 接入 | 云监控 2.0 接入中心 | SLS Logtail 手动配置 |
适用场景 | 快速接入单个服务的日志 | 批量接入多个服务的日志 | 需要采集文件日志、自定义解析 等高阶功能 |
日志类型 | 仅标准输出日志 | 仅标准输出日志 | 标准输出日志 + 文件日志 |
操作复杂度 | 最低,在 EAS 服务详情页一键开启 | 中等,需在云监控2.0控制台配置 | 最高,需手动创建机器组和配置 Logtail |
场景一:快速接入单个服务日志(EAS 洞察 Tab)
如果您想快速接入某个 EAS 服务的标准输出日志到SLS,可以在 EAS 服务详情页的洞察 Tab 中一键开启。开启后,日志将自动采集到 SLS 中。
操作步骤如下:
登录PAI 控制台,在页面上方选择目标地域。
在左侧导航栏选择模型在线服务(EAS),如有多个工作空间,请选择目标工作空间进入。
在推理服务页签,单击目标服务名称,进入服务详情页。
在服务详情页,单击洞察页签。
根据该地域的接入状态,执行对应操作:
该地域从未接入过:在步骤 2初始化资源中,单击开启洞察,系统会自动完成资源初始化和数据接入。
该地域已接入过:系统会自动完成当前服务实例的接入,无需额外操作。
通过洞察 Tab 接入的服务,在云监控 2.0 的接入管理中会创建一个单实例接入模式的配置,仅采集当前服务的日志。如果需要批量接入多个服务,请参考场景二。
场景二:批量接入多个服务日志(云监控 2.0 接入中心)
如果您需要一次性接入某个地域下多个 EAS 服务的标准输出日志,可以通过云监控 2.0 的接入中心进行批量接入。
登录云监控2.0控制台,选择与EAS服务同地域的工作空间后,在左侧导航栏单击接入中心。
如没有同地域工作空间,请在左侧导航栏单击云监控2.0右侧的返回按钮,进入工作空间管理,新建工作空间。
在接入中心页面的搜索框中,输入"模型在线服务 PAI-EAS",单击搜索结果卡片。
在开始接入面板中,根据需要选择账号、策略名称和实体范围(区域无法选择,默认为工作空间所属地域),单击确定。
在接入配置区域,继续配置:
接入名称:非必填,会默认生成。建议填写自定义名称,便于区分不同接入配置。
选择接入的数据:勾选PAI-EAS 服务日志。
单击确定。切换到接入管理页签,查看接入配置,在操作列单击数据源查看对应的 SLS Logstore 信息。
场景三:自定义日志采集(SLS Logtail 手动配置)
如果您需要采集文件日志,采集日志到指定的Project和LogStore,或需要对日志进行自定义解析、投递 OSS 等高阶操作,可以通过 SLS Logtail 手动配置日志采集。
不同资源类型的服务在机器组创建方式和 Logtail 配置上存在差异,请根据您使用的资源类型,选择对应的章节完成配置。三种资源类型的核心区别如下:
公共资源组:需要手动创建机器组(使用自定义标识),手动配置 Logtail。
专属资源组:配置SLS后自动创建机器组和 Logtail,如需采集自定义日志再手动补充配置。
资源配额:需要手动创建机器组(使用与公共资源组不同的自定义标识),手动配置 Logtail。
前提条件
请先开通日志服务 SLS,并创建 Project 和 Logstore,详情请参见管理Project、创建基础LogStore。
公共资源组
步骤一:创建机器组
部署在公共资源组中的服务,需要手工创建机器组。
登录日志服务控制台,在Project列表区域,单击目标Project。
在左侧导航栏中,选择机器组。
选择机器组右侧的创建机器组。
在创建机器组页面,通过用户自定义标识来创建机器组:
机器组标识::选择用户自定义标识。
机器组 Topic:留空。
名称、用户自定义标识:都填写
eas-log-group-{region_id},其中{region_id}替换为服务所在地域 ID(例如张家口为eas-log-group-cn-zhangjiakou)。
确认已部署使用公共资源的服务后,在机器组页面的状态列表中查看实例心跳状态。OK 表示机器组运行正常。
说明如果没有部署服务,则实例列表显示为空。
步骤二:配置 Logtail
根据需要采集的日志内容配置 Logtail。下文介绍采集容器标准输出和采集容器内文件日志的简单配置,更多配置参考创建并配置日志采集规则自行配置。
采集容器标准输出
登录日志服务控制台。
在右侧的快速接入数据区域,单击接入数据,选择K8S - 标准输出 - 旧版。
选择目标 Project 和 Logstore,单击下一步。
单击使用已有机器组,并选择步骤一中已手动创建的公共资源组机器组,单击下一步。
(可选)在使用自定义镜像部署服务的场景中,如果您不希望采集 EAS 引擎日志,在输入配置中,打开容器过滤,添加容器 label 黑名单,标签名填写
io.kubernetes.container.name,标签值填写easworker。单击下一步,直到配置结束。
采集容器内文件日志
在右侧的快速接入数据区域,单击接入数据,选择Kubernetes - 文件。
选择目标 Project 和 Logstore,单击下一步。
选择步骤一中已手动创建的公共资源组机器组,单击下一步。
在输入配置区域配置文件路径(即要采集的文件路径地址),并单击下一步。
单击下一步,直到配置结束。
资源配额
步骤一:创建机器组
操作步骤与公共资源组相同,注意用户自定义标识不一样。
资源配额的自定义标识为eas-log-group-{region_id}-for-resource-quota,其中 {region_id}替换为服务所在地域 ID(例如张家口为eas-log-group-cn-zhangjiakou-for-resource-quota)
步骤二:配置 Logtail
根据需要采集的日志内容配置 Logtail。下文介绍采集容器标准输出和采集容器内文件日志的简单配置。更多配置参考持续采集主机文本日志自行配置。
采集容器标准输出
登录日志服务控制台。
在右侧的快速接入数据区域,单击接入数据,选择单行 - 文本日志。
说明可以根据实际需求修改接入方式。例如,需要正则匹配采集到的日志,可以选择正则 - 文本日志。如果需要 JSON 解析日志,可以选择Json-文本日志。也可创建后再修改。
选择目标 Project 和 Logstore,单击下一步。
在机器组配置中如下填写,然后单击下一步:
使用场景:选择主机场景。
安装环境:选择 ECS。
机器组:选择步骤一中已手动创建的资源配额机器组。
在 Logtail 配置中,填写以下配置:
文件路径:填写
/var/log/containers-stdout/{container_name}/*.log。其中{container_name}为容器名。例如,如果您想采集所有自定义容器 log,可以填写/var/log/containers-stdout/worker*/*.log。
单击下一步,直到配置结束。
采集容器内文件日志
部署服务时,需要通过配置 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", } } }在右侧的快速接入数据区域,单击接入数据,选择单行 - 文本日志。
在机器组配置中如下填写,然后单击下一步:
使用场景:选择主机场景。
安装环境:选择 ECS。
机器组:选择步骤一中已手动创建的资源配额机器组。
在 Logtail 配置中,填写以下配置:
类型:选择文本日志采集。
文件路径:填写要采集的日志文件,必须是已在服务配置 JSON 中声明过的路径。如
/home/admin/logs/*.log。最大目录监控深度:设置为
0。
单击下一步,直到配置结束。
专属资源组
步骤一:创建机器组
与公共资源组和资源配额不同,专属资源组无需手动创建机器组。您只需在 PAI 控制台为专属资源组配置 SLS,系统会自动完成以下操作:
在 SLS 中创建机器组,名称格式为
eas-sls-{resource-id}-mg(resource-id 为资源组 ID)。在指定的 Logstore 中创建 Logtail,用于采集 EAS 框架日志。
操作步骤如下:
登录PAI 控制台,在页面上方选择目标地域。
在左侧导航栏选择 。
在 页签,单击资源组名称,进入专属资源组详情页面。
在专属资源组详情页面,单击配置SLS。
在写入SLS配置对话框,选择SLSProject及LogStore,并单击确定。
步骤二:配置 Logtail
专属资源组配置SLS后,已自动创建 Logtail 用于采集 EAS 框架日志。
如需采集自定义日志,参考公共资源组-配置 Logtail,注意机器组选择步骤一中EAS自动创建的专属资源组机器组。
常见问题
Q:如何关闭PAI-EAS服务的SLS日志采集?
根据您使用的接入方式,执行对应的关闭操作:
通过洞察 Tab 或云监控 2.0 接入中心开启的(场景一、场景二):登录云监控 2.0 控制台,在接入管理中找到对应的接入配置,删除该接入。
专属资源组(场景三):在 PAI 控制台进入专属资源组详情页,单击配置 SLS,在下拉框中选择关闭SLS配置。
公共资源组或资源配额(场景三):登录日志服务控制台,删除对应的 Logtail 配置。
Q:专属资源组配置 SLS 后日志采集不全或与流量不匹配怎么办?
日志缺失或日志量与实际请求流量不一致时,请按以下顺序排查:
检查 Logtail 配置中的容器过滤规则是否正确。过滤规则设置不当会导致目标容器的日志未被采集。
确认 EAS 服务关联角色
AliyunServiceRoleForEAS是否具有足够的 SLS 写入权限。权限不足可能导致部分日志写入失败。参考本文重新核对日志采集配置及服务关联角色权限。
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日志采集?」条目,先定位再关闭。
