使用外部 ELK 堆栈记录 Kubernetes
Logging Kubernetes with an external ELK stack
是否有关于将日志从 K8s 中的容器发送到 EC2 实例上的外部 ELK 集群 运行 的文档?
我们正在尝试设置 Kubernetes,我正在尝试弄清楚如何让日志记录正常工作。我们已经在 EC2 上为当前版本的应用程序设置了 ELK 堆栈,但大多数文档似乎都指的是 ELK,因为它已部署到 K8s 集群。
我也在为同样的事业努力。
首先,您应该知道 docker 容器正在使用什么驱动程序来管理日志(json 驱动程序/journald 等 - 阅读 here)。
之后,您应该在您的体系结构中使用一些日志收集器将日志发送到 Logstash 端点。您可以使用 filebeat/fluent 位。它们分别是 logstash/fluentd 的轻量级替代品。您必须使用其中之一,而不是直接通过 syslog 将您的日志发送到 logstash,因为这些日志传送器具有使用相应容器的 kubernetes 元数据丰富您的日志的特殊功能。
之后可能会有很多挑战。解析日志数据(例如多行日志)等。对于高效的管道,最好在日志发送方完成大部分工作(即从日志中提取日期对象等),而不是为此目的使用通用的 logstash可能是瓶颈。
请注意,如果容器日志未发送到 stdout/stderr 而是写在其他地方,您可能需要 运行 filebeat/fluent-bit 作为容器的 side-car .
至于文档的链接,我自己没有在一个地方找到任何文档,但是我提到的关键字,阅读它们让我了解了很多东西。
希望对您有所帮助。
是否有关于将日志从 K8s 中的容器发送到 EC2 实例上的外部 ELK 集群 运行 的文档?
我们正在尝试设置 Kubernetes,我正在尝试弄清楚如何让日志记录正常工作。我们已经在 EC2 上为当前版本的应用程序设置了 ELK 堆栈,但大多数文档似乎都指的是 ELK,因为它已部署到 K8s 集群。
我也在为同样的事业努力。
首先,您应该知道 docker 容器正在使用什么驱动程序来管理日志(json 驱动程序/journald 等 - 阅读 here)。
之后,您应该在您的体系结构中使用一些日志收集器将日志发送到 Logstash 端点。您可以使用 filebeat/fluent 位。它们分别是 logstash/fluentd 的轻量级替代品。您必须使用其中之一,而不是直接通过 syslog 将您的日志发送到 logstash,因为这些日志传送器具有使用相应容器的 kubernetes 元数据丰富您的日志的特殊功能。
之后可能会有很多挑战。解析日志数据(例如多行日志)等。对于高效的管道,最好在日志发送方完成大部分工作(即从日志中提取日期对象等),而不是为此目的使用通用的 logstash可能是瓶颈。
请注意,如果容器日志未发送到 stdout/stderr 而是写在其他地方,您可能需要 运行 filebeat/fluent-bit 作为容器的 side-car .
至于文档的链接,我自己没有在一个地方找到任何文档,但是我提到的关键字,阅读它们让我了解了很多东西。
希望对您有所帮助。