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

6pp0gazn  于 2022-12-16  发布在  Logstash
关注(0)|答案(4)|浏览(514)

我正在试用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
    1.文件节拍ElasticSearch输出https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html
    有人能列出他们的差异,以及何时使用哪种设置吗?如果这里没有,请给我指出正确的地方,如超级用户或DevOp或服务器故障。
yizd12fk

yizd12fk1#

1)要使用logstash file输入,您需要在您想要收集日志的机器上运行logstash示例,如果日志与您已经运行logstash的机器在同一台机器上,这不是问题,但如果日志在远程机器上,则不总是推荐使用logstash示例,因为它需要比filebeat更多的资源。
2和3)对于收集远程机器上的日志,推荐使用filebeat,因为它需要的资源比logstash示例少,如果你想解析日志,添加或删除字段,或者对数据进行一些充实,你可以使用logstash输出,如果你不需要做任何类似的事情,你可以使用elasticsearch输出,并将数据直接发送到elasticsearch。
这是主要的区别,如果你的日志在运行logstash的同一台机器上,你可以使用file输入,如果你需要从远程机器收集日志,你可以使用filebeat并将其发送到logstash,如果你想对你的数据进行转换,或者直接发送到elasticsearch,如果你不需要对你的数据进行转换。
使用filebeat的另一个优点是,即使在logstash机器上,如果logstash示例关闭,也不会丢失任何日志,filebeat将重新发送事件,使用file输入在某些情况下可能会丢失事件。

jchrr9hc

jchrr9hc2#

大规模应用程序的另一点是,如果您有很多Beat(FileBeat,HeartBeat,MetricBeat...)示例,您不希望它们同时打开连接并直接向Elasticsearch示例发送数据。
有太多的并发索引连接可能会导致高容量队列、低响应性和超时。因此,在大多数情况下,常见的设置是在Beat示例和Elasticsearch之间放置Logstash来控制索引。
对于较大规模的系统,常见的设置是在Beats和Logstash之间有一个缓冲消息队列(Apache Kafka、Rabbit MQ或Redis),以获得弹性,避免在事件高峰期间Logstash发生拥塞。

图从Logz.io中捕获。他们在这个主题上也有很好的article

odopli94

odopli943#

不太熟悉(2)。但是,Logstash(1)通常是一个很好的选择,它可以使用输入/输出过滤器来播放内容,将其与分析器匹配,然后将其发送到Elasticsearch。例如,您将Logstash指向您的MySql,MySql将获取一行修改数据(可能对它进行一些数学运算,然后Concat一些并删除一些单词,然后将其作为处理后的数据发送到Elasticsearch)。
对于对数拍(2),这是一个完美的选择,拿起一个已经处理过的数据,并将其传递给elasticsearch. Logstash(正如其名称所明确指出的)主要适用于日志文件和类似的东西。通常您可以对这些文件进行微小的更改。例如,我的服务器中有一些日志文件(包括错误、系统日志、进程日志..)Logstash侦听这些文件,会自动提取新添加的行并将其发送到Elasticsearch。然后,您可以在Elasticsearch中过滤一些内容,找到对您重要的内容。
p.s:logstash有一个非常好的方法来将太多的数据负载平衡到ES。

jjhzyzn0

jjhzyzn04#

现在您可以使用filebeat将日志直接发送到elasticsearch或logstash(没有logstash代理,但仍然需要logstash服务器)。
主要优点是logstash允许您自定义解析日志的每一行...而filebeat单独发送日志,字段分隔不多。
Elasticsearch仍然会索引和存储数据。

相关问题