iLogtail在Kubernetes中采集容器标准输出(stdout/stderr)日志的原理:
日志存储路径:容器运行时将标准输出日志写入宿主机的特定路径。Containerd环境下默认路径为/var/log/pods/<namespace>_<pod-name>_<pod-uid>/<container-name>/,以JSON Lines格式存储。Docker环境下路径为/var/lib/docker/containers/<container-id>/。
iLogtail的工作流程:
- 通过容器运行时API发现新容器,获取容器ID和元信息(Pod名、Namespace、Labels等)。
- 根据容器ID计算出标准输出日志文件在宿主机上的实际路径。
- 使用文件采集(InputFile)能力对该路径进行实时追踪和采集。
- 解析容器日志格式(如JSON格式中提取log字段、时间戳、stream类型等)。
- 关联Kubernetes元信息作为日志Tag(如k8s_pod_name、k8s_namespace等)。
关键创新:iLogtail直接与容器运行时交互获取rootfs路径,而非通过API Server查询,确保了在容器创建后能以最短延迟开始采集。




