java - 在 Spring Boot 应用程序上设置 Logstash
问题描述
我正在构建微服务,并希望将所有日志推送到云上管理的 ELK 堆栈。将日志推送到 Elasticsearch 的标准做法是什么。我应该在每个微服务实例上配置logstash,还是应该远程配置logstash并且所有微服务都应该将日志推送到logstash服务?
解决方案
您应该在运行代码的每台服务器上运行 Filebeat(或 Fluent Bit),理想情况下,/var/log/java/<your app name>
使用滚动文件附加器将 Spring 中的 slf4j 写入一些服务器;java
子目录,因为您将要获取它下的所有目录,并且您不需要捕获所有其他/var/log/*
文件和目录...
然后,配置Filebeat扫描下的文件/var/log/java/**
从那里,您可以直接发送到 Elastic,或者推送 TCP、Kafka 等输出并从 Logstash(或 Fluentd)使用,然后在写入 Elastic 之前进行转换、过滤等
推荐阅读
- swift - 如何在 SwiftUI 的 ShareSheet 中共享子视图
- python - 在 python 的函数中嵌入函数的可能问题。有没有应该避免这种情况的时候?
- java - 如何提高我的android应用程序中okHttp请求的速度?
- javascript - 使用复制按钮时删除 HTML 中的空格
- flutter - Flutters 数据表中的列排序
- flutter - 如何将 AnimatinonContainer 恢复到以前的状态?
- julia - not 运算符 (!) 不适用于数组广播
- c# - 等到特定进程完成
- wordpress - 如何通过第三方网址传递参数?
- javascript - 循环遍历对象中的对象,带点名称并过滤属性 Javascript