ruby - 如何在logstash过滤器中使用redis?

标签 ruby plugins redis logstash elk

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

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

我在一台新机器上重新安装了所有东西。一切都很顺利,除了一件事:logstash-filter-redis 插件

这是我的logstashconf文件

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插件

有人可以帮我吗?

谢谢

最佳答案

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

我最近刚刚了解到另一种丰富 Redis 数据的方法,即通过 ruby 过滤器访问 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")))'
   }
}

关于ruby - 如何在logstash过滤器中使用redis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58379149/

相关文章:

java - 用于构建对象的通用验证和转换链的代码

node.js - Node.js、Redis、套接字

ruby-on-rails - 指定 gem 版本还是始终使用最新版本?

ruby-on-rails - 使用 Ruby 中的按钮更改属性的值

ruby-on-rails - Rails + Devise 如何不强制使用 SSL?

ruby-on-rails - 为 Rails 应用构建扩展框架

jquery - 使用 css3 或 jquery 的背景图像动画?

database - 个性化提要的缓存策略

ruby-on-rails - Redis 的环境变量

ruby-on-rails - Rails 帮助文件中的 if 语句?