日志采集通用问题
集群配置日志采集后,为什么在日志服务控制台查看不到日志?
发生日志查看不到或者缺失的情况,请检查是否存在以下问题:
检查所选的日志 topic 是否开启了索引。索引配置是使用日志服务进行检索分析的必要条件。若未开启,则无法查看日志。配置索引的详细操作,请参见 日志服务配置索引。 日志、审计、事件是否选用同一个 topic。若选用同一个 topic 则会发生日志覆盖,造成缺失。
检查所选的 topic 是否选用了两种提取模式。新的提取模式会覆盖旧的提取模式。
检查是否存在软链接。如果选择采集类型为“容器文件路径”时,对应的“容器文件路径”不能为软链接,否则会导致软链接的实际路径在采集器的容器内不存在,导致采集日志失败。
若采用环境变量的方式开启 TKE Serverless 日志采集,并选择角色授权,在创建角色时需要选择 CVM 载体,选择容器服务则无法完成授权。
配置好日志规则后,日志在哪查看?
2. 进入“检索分析”页面,选择地域、需要查看日志的日志集和日志主题,开启全文索引,即可检索分析日志。如下图所示: 使用环境变量开启 TKE Serverless 日志采集时
Java 类应用如何实现多行日志合并?
当客户程序的日志数据跨占多行时(例如 Java 程序日志),不能使用换行符 \\n
作为日志的结束标识符。为了能让日志系统明确区分开每条日志,需要配置具有首行正则表达式的 configmap,当某行日志匹配了预先设置的正则表达式,则认为是一条日志的开头,而在下一个行首出现则作为该条日志的结束标识符。详情可参见 TKE Serverless 日志采集实现多行日志合并。 如何调整日志采集配置,以适应不同的日志输出速率?
当使用环境变量的方式开启 TKE Serverless 日志采集时,TKE Serverless 会在 pod sandbox 里额外启动一个日志采集组件来进行日志收集并上报。由于 TKE Serverless 限制了日志采集组件的内存使用量,当日志的输出速率过高时,日志采集组件可能会发生 OOM 的情况,此时可以按需调整日志采集的配置。具体方法为手动修改以下 pod annotation,将日志采集组件使用的内存缓冲区调小,以减少内存占用。
internal.eks.tke.cloud.tencent.com/tail-buffer-chunk-size: "2M"
internal.eks.tke.cloud.tencent.com/tail-buffer-max-size: "2M"
|
| 设置初始缓冲区大小以采集容器文件日志,也可用于增加缓冲区的大小。 | |
| 设置每个受监视文件的缓冲区大小的限制。当需要增加缓冲区时(例如长日志),此值可以限制缓冲区的增加量。如果读取的文件超过此限制,将从监视列表中删除此文件。 | |
Serverless 集群容器内应用输出日志的标准是什么?
在应用输出日志时,应注意容器内应用尽量输出至 stdout。如果您的程序日志输出至容器的文件,需要有相应的手段来管理日志文件的滚动和清理,或者挂载 volume 持久化存储,否则20G临时空间会被占满,详情可参见 Pod 临时存储。 若无管理日志文件的滚动和清理手段,推荐您进行以下操作:
挂载 volume 持久化存储,详情可参见 存储管理。
本页内容是否解决了您的问题?