日志采集容器配置说明
为了满足平台用户发布任务时对日志持久化的需求,平台提供了一套低侵入、开箱即用的日志采集方案。
通过本指南,您可以轻松地将容器内产生的业务日志,实时投递至指定的第三方云日志服务(如阿里云 SLS、腾讯云 CLS、火山引擎等),而无需手动编写复杂的底层配置文件。
一、功能入口
Section titled “一、功能入口”在创建或编辑多容器任务时,开启“该任务为多容器任务”开关。在下方的容器标签页区域,点击最右侧的 「添加日志容器」 按钮,系统将弹出“日志容器配置”窗口。
二、日志容器配置指引
Section titled “二、日志容器配置指引”在弹出的配置窗口中,您只需按步骤完成以下三个模块的填写,最后点击底部的 「确认挂载」 即可。
云服务商选择与鉴权配置
Section titled “云服务商选择与鉴权配置”平台支持将日志推送到多种主流云厂商。选中您的目标厂商后(需要您提前在云厂商日志服务中进行注册,表单下方提供了对应云厂商的官方配置参考文档链接),请填写对应的鉴权与路由参数:
-
阿里云 SLS(示例)
- 地址:填写 SLS_KAFKA_ENDPOINT,例如 cn-hangzhou.log.aliyuncs.com:10012。
- Project 名称:您的 SLS 项目名。
- LogStore 名称:接收日志的 Logstore 名称。
- 具备 sls 写入权限的 AccessKeySecret:填写对应权限的密钥凭证(SLS_PASSWORD)。
-
火山引擎 TLS / 腾讯云 CLS
- 切换选项后,请根据界面上动态变化的表单,填入对应云厂商要求的主题 ID (Topic)、日志集 ID 等路由及鉴权参数。
-
自定义配置
- 如果您使用其他日志中心,可选择此项进行高度自定义的配置。
您需要告诉采集器去哪里读取业务日志文件。平台会自动在底层建立安全的临时共享卷,您无需手动配置复杂的挂载关系。
- 配置方法:在输入框中填写需要采集的日志绝对路径,支持使用通配符(例如默认的 /logs/*.log)。
- 注意:请务必确保您的核心业务容器(如 container-01)也已将日志落盘(写入文件)至上述填写的路径中。本方案暂不支持直接采集控制台的标准输出。
日志轮转托管
Section titled “日志轮转托管”长时间运行的服务如果不清理日志,极易导致容器磁盘打满。平台为您提供了开箱即用的日志轮转能力。
- 开启轮转托管:打开开关后,平台将为您“自动轮转并控制日志保留数量”(默认单文件上限 100MB,保留 5 个)。
- 避坑指南:如果您的业务代码已经自带了日志按天或按大小切割的逻辑,请务必保持此开关处于“关闭”状态。同时开启业务轮转和平台轮转会导致严重的文件读取冲突,从而造成日志丢失。
三、 ⚠️ Job 批处理任务专属退出机制
Section titled “三、 ⚠️ Job 批处理任务专属退出机制”如果您运行的是数据批处理、AI 离线训练等 Job 批处理类任务,请务必阅读本章节,这关乎您的任务能否正常结束。
为什么需要配置退出机制?
Section titled “为什么需要配置退出机制?”由于日志采集器是一个常驻后台的进程,它永远不会主动停止。当您的主业务程序执行完毕退出后,如果没有特定的信号通知,日志容器将一直在后台挂起等待。这将导致整个任务的 Pod 无法变为已完成状态,不仅会持续占用计算资源,还会导致重试机制失效。
如何配置安全退出?
Section titled “如何配置安全退出?”为确保任务结束后能释放资源,平台已为您底层挂载了共享目录 /tasksite。请在业务代码运行结束时(或异常捕获逻辑中)执行以下命令触发退出机制:
在启动命令最后添加命令 touch /tasksite/tombstone 通知日志容器退出。
风险提示:若程序异常崩溃导致该命令未执行,可能会造成任务挂起或重试失败
四、常见问题解答 (FAQ)
Section titled “四、常见问题解答 (FAQ)”Q:为什么配置了日志容器,但在云平台界面上的控制台日志里看不到输出?
A:当前方案会将日志落盘写入文件。写入指定目录文件的日志会被精准投递到您配置的云服务商(如阿里云 SLS)中。控制台只展示标准输出的内容。
Q:提交配置后,还能修改挂载关系吗?
A:点击“确认挂载”后,系统会在工作负载中自动生成一个专用的日志容器。对于弹性部署服务,如需修改,您可以随时点击该日志容器的标签页进行重新配置或移除。但是对于 job 批处理任务,将不可以更改配置。