使用Filebeat和Logstash将日志文件推送到Elasticsearch之间的区别

问题描述 投票:0回答:2

我正在尝试使用ELK来可视化我的日志文件。我尝试了不同的设置:

  1. Logstash文件输入插件https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html
  2. Logstash Beats输入插件https://www.elastic.co/guide/en/logstash/current/plugins-inputs-beats.html和Filebeat Logstash输出https://www.elastic.co/guide/en/beats/filebeat/current/logstash-output.html
  3. Filebeat Elasticsearch输出https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html

有人可以列出他们的差异以及何时使用哪种设置?如果不是在这里,请指向超级用户或DevOp或服务器故障之类的正确位置。

elasticsearch logstash elastic-stack filebeat elk
2个回答
1
投票

1]要使用logstash file输入,您需要在要从中收集日志的计算机上运行一个logstash实例,如果日志位于您已经在运行logstash的同一台计算机上,那么这不是问题,但是如果日志位于远程计算机上,则不总是建议使用logstash实例,因为它需要的资源比文件拍子更多。

2和3)建议使用filebeat收集远程计算机上的日志,因为它需要的资源比logstash实例少,如果要解析日志,添加或删除字段或对数据进行一些扩充,则可以使用logstash输出,如果您不需要执行任何此类操作,则可以使用elasticsearch输出并将数据直接发送到elasticsearch。

这是主要区别,如果您的日志与运行logstash的计算机位于同一台计算机上,则可以使用file输入,如果需要从远程计算机收集日志,则可以使用filebeat并将其发送到logstash如果要对数据进行转换,或者如果不需要对数据进行转换,则直接发送到elasticsearch。

即使在logstash机器上使用filebeat的另一个优点是,如果logstash实例关闭,您将不会丢失任何日志,filebeat将重新发送事件,使用file输入,在某些情况下您可能会丢失事件。


1
投票

不太熟悉(2)。但,Logstash(1)通常是一个不错的选择,可以使用输入/输出过滤器来处理内容,将其与您的分析器匹配,然后将其发送到Elasticsearch。例如您将Logstash指向您的MySql,后者需要对数据进行一行修改(可能要对它进行一些数学运算,然后对Concat进行一些运算并切出一些单词,然后将其作为已处理数据发送给ElasticSearch)。

对于Logbeat(2),这是拾起已经处理过的数据并将其传递给elasticsearch的理想选择。Logstash(顾名思义,该名称)最适合于日志文件之类的东西。通常,您可以对这些内容进行细微的更改。例如我的服务器中有一些日志文件(包括错误,系统日志,进程日志..)Logstash侦听这些文件,自动选择添加到该文件中的新行,并将这些行发送到Elasticsearch。然后,您可以在elasticsearch中过滤一些内容,并找到对您来说重要的内容。

p.s:logstash具有很好的平衡过多数据到ES的数据的好方法。

© www.soinside.com 2019 - 2024. All rights reserved.