如何在 logstash 过滤器中使用 redis?
How to use redis inside logstash filter?
我正在将我的 ELK+Redis 从一个非常旧的版本升级到最新版本。
ES 1.6 to 7.4
LS 1.4 to 7.4
Redis 2.8 to 5.0
我在一台新机器上全新安装了所有东西。事情进展顺利,除了一件事:logstash-filter-redis 插件
这是我的 logstash 配置文件
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 synlay and meulop,但我不确定它们的支持和维护情况如何。
我最近刚刚了解到另一种通过 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")))'
}
}
我正在将我的 ELK+Redis 从一个非常旧的版本升级到最新版本。
ES 1.6 to 7.4
LS 1.4 to 7.4
Redis 2.8 to 5.0
我在一台新机器上全新安装了所有东西。事情进展顺利,除了一件事:logstash-filter-redis 插件
这是我的 logstash 配置文件
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 synlay and meulop,但我不确定它们的支持和维护情况如何。
我最近刚刚了解到另一种通过 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")))'
}
}