收集kubernetes的Pod日志

问题描述

我正在尝试收集应用程序容器整个生命周期中的日志。这些容器在Kubernetes容器内运行,我找到了Fluentd之类的解决方案,但我也发现我需要指定一个后端(Elasticsearch,AWS S3等),而我想在具有特定名称的文件中收集日志podname_namespace_containername.json,然后使用脚本解析这些文件。可以流利吗?

解决方法

到目前为止,设置日志收集最快的方法是https://github.com/helm/charts/tree/master/stable/fluent-bit。有关所有可用选项,请参考tt。它支持多个后端,如ES,S3,Kafka。每个日志事件都富含Pod元数据(pod名称,名称空间等)并进行了标记,以便您可以在后端分别组织处理。例如。在后端,您只能选择和解析某些名称空间中的某些pod。

根据https://kubernetes.io/docs/concepts/cluster-administration/logging/,您登录到stdout / stderr,它被写入底层节点,日志收集器(守护程序集)收集所有内容并进一步发送。

enter image description here

Kubernetes中的

FluentBit守护程序集正是实现了这种架构。有关FluentBit的更多文档:https://docs.fluentbit.io/manual/concepts/data-pipeline

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...