是否存在有关将日志从K8s中的容器发送到在EC2实例上运行的外部ELK集群的文档?
我们正在尝试设置Kubernetes,我正在尝试弄清楚如何使日志正常运行。我们已经在EC2上为该应用程序的当前版本设置了ELK堆栈,但是在将其部署到K8s集群中时,大多数文档似乎都在提及ELK。
答案 0 :(得分:2)
我也在同一个原因上努力。
首先,您应该知道Docker容器正在使用什么驱动程序来管理日志(json驱动程序/已记录日志等-阅读here)。
之后,您应该在体系结构中使用一些日志收集器将日志发送到Logstash端点。您可以使用filebeat / fluent位。它们分别是logtash / fluented的轻巧替代品。您必须使用其中之一,而不要通过syslog直接将日志发送到logstash,因为这些日志发送程序具有特殊的功能,可以使用各个容器的kubernetes元数据来丰富您的日志。
在那之后可能会有很多挑战。解析日志数据(例如多行日志)等。为了建立高效的管道,最好在日志发送方进行大部分工作(即从日志中提取日期对象等),而不是为此目的使用通用的logtash可能是瓶颈。
请注意,如果未将容器日志发送到stdout / stderr而是在其他地方写入,则可能需要将filebeat / fluent-bit作为容器的附带工具运行。
关于文档的链接,我本人没有在任何地方找到任何文档,但是我提到的关键字在阅读它们之后我了解了很多事情。
希望这会有所帮助。