通过 LogCollector 采集日志数据时,请注意以下使用限制。
说明
本文档中的限制说明基于 LogCollector 最新正式版本。查看 LogCollector 版本号的步骤请参考查看软件版本,LogCollector版本说明请参考LogCollector 版本说明。
限制项 | 说明 |
---|---|
体系结构 |
|
系统环境 | Linux Kernel 2.6.32 及以上版本。 |
Kubernetes | 使用 DaemonSet 方式采集日志时,应使用 Kubernetes 1.10.0 或以上版本,即支持 Mount propagation: HostToContainer 的版本。 |
限制项 | 说明 |
---|---|
日志采集长度 | 单条日志最大长度为 512 KiB。
|
日志聚合上传 | LogCollector 会将同一文件的日志自动聚合上传。相较于逐条上传日志的方式,聚合日志可以显著减少网络请求次数,提高日志上传的吞吐量。 |
键值索引字段数量 | 单个日志主题中,键值索引字段的最大数量为 100 个。 |
日志轮转 | LogCollector 支持轮转场景的日志采集。 说明
|
采集历史日志文件 | LogCollector 支持采集历史日志文件。对于采集配置中匹配到的日志文件,LogCollector 会并发采集,包括历史日志文件。这种场景下可能会造成日志乱序,即预览日志文件或查看上下文时,日志数据可能会乱序展示。 说明 LogCollector 使用 inode 来标识日志文件。使用 vim 编辑日志文件时,vim 会修改日志文件的 inode,导致 LogCollector 将其视为全新的日志文件并从头开始采集其中的日志数据。 |
监控文件数量 | 每台宿主机或容器中的 LogCollector 客户端同时可监控最多 10000 个日志文件。超出数量限制时,其他文件暂时无法被监控。 |
正则匹配与过滤 | 在单行完整正则、多行完整正则模式和高级配置 > 过滤器配置中,日志服务支持 PCRE 的正则表达式标准。 |
限制项 | 说明 |
---|---|
挂载方式 | 容器内日志文件的采集路径目前仅支持“不挂载”、“emptyDir 挂载”和“hostPath 挂载” 3 种方式。 |
软链接 | 采集容器文件中的日志时,不支持目录及文件的软连接。 |
容器生命周期 | 默认情况下,容器生命周期至少应在 10 秒以上,LogCollector 才能采集到日志。若有更短容器生命周期的采集需求,请提工单联系技术支持。 |
K8s 集群规模 | LogCollector 通过 K8s ListWatch 机制来监听容器的事件。在集群节点数大于 1000 等集群规模较大的场景下,建议在 K8s ApiServer 侧针对 ListWatch 进行限流,避免大量 ListWatch 请求造成 K8s ApiServer 负载过大、业务时延增大。 |
工作负载 | 采集 StatefulSet 类型的 Pod 时,Pod 的删除或者扩缩容不会删除 StatefulSet 关联的 Volume。因此 Volume 中可能存在历史 Pod 信息,在特定情况下(例如采集路径使用了 |
限制项 | 说明 |
---|---|
配置更新生效的延时 | 从通过 API 或者控制台更新的采集配置到 LogCollector 客户端配置生效的延时约为 30 秒。 |
配置动态加载 | 支持动态加载配置,且其中某一配置的更新不影响其他配置。 |
单个 LogCollector 可加载配置数 | 理论上无限制。建议一台服务器中的 LogCollector 采集配置数不超过 100 个。 |
单个文件匹配的采集配置数量 | 单个文件只能匹配一个采集配置,若同一个文件同时匹配多个采集配置时,仅创建时间最新的采集配置会生效。 |