1

我正在将我的 ELK+Redis 从一个非常旧的版本升级到最新版本。

ES 1.6 to 7.4
LS 1.4 to 7.4
Redis 2.8 to 5.0

我将所有东西都安装在新机器上。事情进展顺利,除了一件事:logstash-filter-redis 插件

这是我的logstash conf文件

input
  {
    redis {
      host
      port => 6380
      data_type
      key
    }
  }
filter {
  grok {
    match => [ "message", "" ]
  }
  redis {
    host => ""
    port => 6379
    key => ""
    }
output {
  elasticsearch {
    host => ""
    index => ""
  }

在这里,输入 {} 中的第一个 redis:6380 用于获取日志(作为 logstash 输入源)

而第二个 redis:6379 在过滤器 { } 中被调用以获取与这些日志关联的数据。

我在https://www.elastic.co/guide/en/logstash/current/filter-plugins.html上看不到任何 logstash-filter-redis 插件

有人可以帮我吗?

谢谢

4

1 回答 1

4

Logstash 中确实没有支持的 Redis 过滤器。您可以通过 synlaymeulop找到两个社区过滤器,但我不确定它们的支持和维护情况如何。

ruby我最近刚刚学到了另一种通过像这样的过滤器访问 Redis 来丰富 Redis 数据的方法:

filter {
   ...
   ruby {
      init => 'require "redis"; $rc = Redis.new(path: "/var/run/redis/redis.sock", db: 0)'
      code => 'event.set("enriched_field", $rc.get(event.get("key_field")))'
   }
}
于 2019-12-12T08:24:43.920 回答