我想部署麋鹿堆栈的前提下,我们的自定义应用程序。所以,我参考了官方文档中的安装指南,安装了elasticsearch cluster和kibana。然后问题来了:文档说如果我愿意,我可以处理来自任何定制应用程序的日志(如果内置模块不适合我),我应该只配置filebeat,这样它就可以获取这些日志作为输入。但是filebeat的输出应该是什么呢?我听说elasticsearch应该得到处理,结构化日志(例如,json格式)作为输入;但是我们的应用程序生成纯文本日志(因为它是java应用程序,日志可以包括堆栈跟踪和其他混合数据),应该首先对它们进行处理和结构化。。。还是不应该?
所以,我的问题是:
我是否需要将filebeat output设置为logstash input来格式化和构造日志,然后将logstash output设置为elasticsearch input?或者我可以直接从filebeat转发日志到elasticsearch?
在这种情况下,我真的需要filebeat吗?或者可以将logstash配置为自己读取日志文件?
1条答案
按热度按时间to94eoyn1#
filebeat和logstash既可以单独工作,也可以协同工作。如果您所要做的只是跟踪日志文件并将其发送到elasticsearch,而不对其执行任何处理,那么我会说使用filebeat,因为它比logstash更轻量级。
如果您需要对日志文件执行一些处理和转换,那么根据您选择的解决方案,您有几个选项。您可以利用:
filebeat处理器
日志存储过滤器
elasticsearch摄取处理器
作为补充,我提请您注意这样一个事实:您的java应用程序不一定要生成纯文本日志。使用
ecs-logging-java
,它还可以生成json日志,随时可以接收到elasticsearch中。如果您使用上述日志库,那么filebeat将非常适合您的用例,但这当然取决于您是否需要解析和处理
message
是否在日志中输入字段。