【问题标题】:Logging Kubernetes with an external ELK stack使用外部 ELK 堆栈记录 Kubernetes
【发布时间】:2018-07-03 19:14:55
【问题描述】:

是否有任何关于将日志从 K8s 中的容器发送到在 EC2 实例上运行的外部 ELK 集群的文档?

我们正在尝试设置 Kubernetes,我正在尝试弄清楚如何让日志记录正常工作。我们已经在 EC2 上为当前版本的应用程序设置了 ELK 堆栈,但那里的大多数文档似乎都提到 ELK,因为它已部署到 K8s 集群。

【问题讨论】:

    标签: kubernetes elastic-stack


    【解决方案1】:

    我也在做同样的事情。

    首先,您应该知道您的 docker 容器正在使用什么驱动程序来管理日志(json 驱动程序/日志等 - 阅读 here)。

    之后,您应该在架构中使用一些日志收集器将日志发送到 Logstash 端点。您可以使用 filebeat/fluent 位。它们分别是 logstash/fluentd 的轻量级替代品。您必须使用其中之一,而不是直接通过 syslog 将您的日志发送到 logstash,因为这些日志传送器具有使用相应容器的 kubernetes 元数据丰富您的日志的特殊功能。

    之后可能会有很多挑战。解析日志数据(例如多行日志)等。对于高效的管道,最好在日志发送方完成大部分工作(即从日志中提取日期对象等),而不是为此使用通用的 logstash可能是一个瓶颈。

    请注意,如果容器日志没有发送到 stdout/stderr 而是写入 else-where,您可能需要将 filebeat/fluent-bit 作为容器的 side-car 运行。

    至于文档的链接,我自己并没有在一个地方找到任何文档,但是我提到的关键字,阅读它们我了解了很多东西。

    希望这会有所帮助。

    【讨论】:

    • 另外,您可以考虑使用 -kafka.apache.org 作为管道中的缓冲系统(以防日志很重要或有大量日志记录,或者您想要集中容错日志处理)。
    猜你喜欢
    • 1970-01-01
    • 2020-06-03
    • 2017-04-09
    • 2015-09-28
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    相关资源
    最近更新 更多