【发布时间】:2021-05-05 05:26:04
【问题描述】:
我正在构建微服务,并希望将所有日志推送到云端管理的 ELK 堆栈。将日志推送到 Elasticsearch 的标准做法是什么。我应该在每个微服务实例上配置logstash,还是应该远程配置logstash,所有微服务都应该将日志推送到logstash服务?
【问题讨论】:
标签: java spring-boot logstash elastic-stack
我正在构建微服务,并希望将所有日志推送到云端管理的 ELK 堆栈。将日志推送到 Elasticsearch 的标准做法是什么。我应该在每个微服务实例上配置logstash,还是应该远程配置logstash,所有微服务都应该将日志推送到logstash服务?
【问题讨论】:
标签: java spring-boot logstash elastic-stack
Loghstash 是一个重量级的应用程序,通常是单实例。
根据我的经验,每个节点通常都有 Filebeat 实例,它们从应用程序中获取日志并通过网络将它们推送到 LogStash 实例。
【讨论】:
您应该在将运行您的代码的每台服务器上运行 Filebeat(或 Fluent Bit),并且理想情况下,使用滚动文件附加程序在 /var/log/java/<your app name> 下写入来自 Spring 的 slf4j; java 子目录,因为您将 glob 其下的所有目录,并且您不需要捕获所有其他 /var/log/* 文件和目录...
然后,配置Filebeat扫描/var/log/java/**下的文件
从那里,您可以直接发送到 Elastic,或推送 TCP、Kafka 等输出并从 Logstash(或 Fluentd)使用,然后在写入 Elastic 之前进行转换、过滤等
【讨论】: