在旧版本的 logstash 中使用 filebeat

using filebeat with old version of logstash

我应该将日志发送到 logstash 实例。

不幸的是,它是 运行 一个非常古老的 logstash 实例(不支持节拍输入)。

它有一个正常的 tcp 输入,如

     tcp {
        port => 8888
        codec => "json"
      }

这是filebeat的当前配置

output.logastash:
    hosts: ["${LOGSTASH_HOST}:8888"]

有没有办法配置 filebeat,使其输出被 logstash 的 tcp 输入接受?

不,filebeat 使用 beats 协议输出,不能使用 tcp 输入。

您有一些解决此问题的选项。

  1. 升级 Logstash: 在我推荐任何 hack 或使用已弃用的软件之前,最好的选择是简单地将 logstash 升级到现代版本,已经有很多一些重大更改和大量性能升级。

  2. 手动将beats输入添加到Logstash:您可以将beats输入添加到logstash 2.x with /opt/logstash/bin/logstash-plugin install logstash-input-beats

  3. 使用logstash-forwarder: Filebeats的前身logstash-forwarder is deprecated, but would work with the lumberjack input of older logstashes

  4. 使用中介: 如果我们查看 output options supported by filebeat and the inputs supported by Logstash >=1.5,您可以在 filebeat 和 logstash 之间使用 kafka 或 redis,它们都是兼容.