一、非云原生应用日志收集方案¶
1.6.1 Filebeat收集非云原生应用日志架构图¶

1.6.2 Filebeat收集非云原生应用日志架构图解析¶
1、应用与日志生成
- 非云原生应用(Application) 以容器形式运行在 Kubernetes Pod 中,但未遵循云原生日志规范(如未将日志输出到标准流)。
- 应用将日志直接写入容器内的本地文件路径(如
/tmp/xxx.log或/app/xxx.log)。
2、日志共享与挂载
- EmptyDir 卷:
- 在 Pod 内创建
EmptyDir卷,作为临时存储空间,用于在应用容器与 Filebeat 容器之间共享日志文件。 - 应用容器将日志写入挂载到
EmptyDir的目录(如/tmp/xxx.log)。 - Filebeat 容器通过挂载同一
EmptyDir卷,读取共享目录中的日志文件(如/app/xxx.log)。 - 路径映射:
- 应用容器日志路径:
/tmp/xxx.log→ 挂载到EmptyDir的某个子目录。 - Filebeat 容器访问路径:
/app/xxx.log(通过卷挂载映射到EmptyDir的实际路径)。
3、日志收集器部署模式(Sidecar)
- Filebeat 以 Sidecar 模式部署:
- 每个应用 Pod 内同时运行应用容器和 Filebeat 容器,二者共享
EmptyDir卷。 - Filebeat 实时监控共享目录中的日志文件变化,进行采集、解析与转发。
- 轻量级代理:Filebeat 仅负责日志传输,资源占用低,适合与业务容器共存。
4、日志处理与转发
- Filebeat 从共享目录中读取日志后,执行以下操作:
- 解析日志格式(如 JSON、文本)。
- 添加元数据(如 Pod 名称、命名空间)。
- 数据缓冲(可选集成 Kafka 或 Redis 应对突发流量)。
- 最终将日志发送至后端系统(如 Elasticsearch、Kafka 或云存储)。
1.6.3 Filebeat收集非云原生应用日志架构流程总结¶
应用容器(Pod 内)
↓(写入日志)
EmptyDir 共享卷(/tmp/xxx.log → /app/xxx.log)
↓(通过卷挂载)
Filebeat 容器(Sidecar 模式)
↓(采集、解析、转发)
Elasticsearch/Kafka 等存储或消息系统
1.7 操作系统级其他组件日志收集方案¶
1.7.1 Filebeat收集操作系统级其他组件日志架构图¶

1.7.2 Filebeat收集操作系统级其他组件日志架构图解析¶
1、操作系统级日志生成
- 宿主机(Node)上的操作系统组件(如内核、系统服务、安全审计等)将日志写入
/var/log目录下的特定文件(如/var/log/syslog、/var/log/auth.log、/var/log/kern.log等)。
2、日志存储与挂载
- HostPath 卷:
- 通过 Kubernetes 的
hostPath卷,将宿主机的/var/log目录挂载到 Filebeat 容器中,使 Filebeat 能够直接读取节点上的操作系统级日志文件。 - 挂载路径示例:宿主机的
/var/log→ Filebeat 容器的/host-var-log。
3、日志收集器部署模式(DaemonSet)
- Filebeat 以 DaemonSet 形式部署:
- 每个节点(Node)上运行一个 Filebeat Pod,确保全覆盖收集所有节点的系统日志。
- DaemonSet 自动适配节点的扩缩容,无需手动管理日志采集器的部署。
- 权限配置:
- Filebeat 容器需通过
securityContext配置高权限(如runAsUser: 0),以访问宿主机上的特权日志文件(如/var/log/secure)。
4、日志处理与转发
- Filebeat 从挂载的
/var/log目录中实时读取日志,进行以下处理: - 解析与过滤:提取关键字段(如日志级别、时间戳、服务名称)。
- 富化元数据:自动附加节点名称、IP、标签等 Kubernetes 元数据。
- 数据缓冲:可选集成 Kafka 或 Redis 应对流量峰值。
- 最终将结构化日志发送至后端存储(如 Elasticsearch)或监控系统(如 Splunk)。
1.7.3 Filebeat收集操作系统级其他组件日志流程总结¶
Filebeat收集操作系统级其他组件日志流程总结:
宿主机操作系统组件(如 systemd、kern)
↓(写入日志)
宿主机 /var/log 目录
↓(通过 HostPath 挂载)
Filebeat 容器(DaemonSet 部署)
↓(采集、解析、转发)
Elasticsearch/Grafana Loki 等存储或分析系统