【问题标题】:Collect kubernetes' pods logs收集 kubernetes 的 pods 日志
【发布时间】:2020-09-16 08:09:11
【问题描述】:

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

【问题讨论】:

    标签: docker logging kubernetes fluentd


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢!按照文档 docs.fluentbit.io/manual/installation/kubernetes,我能够在运行 pod 的每个节点内的一个文件夹中收集应用程序容器日志。我只需要用文件更改 ES 部分。
    猜你喜欢
    • 2018-01-26
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多