logstash拉取redisStream的流数据,并存储ES
先说结论, window验证logstash截至2025-06-06 是没有原生支持的。
为啥考虑用redisStream呢?因为不想引入三方的kafka等组件, 让服务部署轻量化, 所以使用现有的redis来实现, 为啥不用list呢? 已经用stream的框架书写了相关的业务处理, 所以更改为list成本太高。
我们有一个服务单独读取redisStream的数据并且写入es。 现在我的日志体系也要接入这套体系中。为了保证后续支持kafka,MQ等消息组件, 我肯定期望是用现有框架,比如logstash来进行支持的。毕竟没啥复杂业务,支持从A的数据源转换为了B的数据源。
以下是试错:
首先服务器使用的jdk1.8 下载了1.8支持的logstash版本。logstash-6.8.23 解析报错。
再下载jdk1.8版本支持的最高版本,logstash-7.9.3报错。
最终下载官网最新版本logstash-9.0.2 还是报错。https://www.elastic.co/downloads/logstash
logstash-9.x版本
因为没有配置文件pipelines.yml 所以 .\bin\logstash.bat --version 并不能查看版本。
使用 .\bin\logstash.bat -e "input { stdin { } } output { stdout {} }" 验证服务是否正常启动。
安装redis的支持:
bin/logstash-plugin install logstash-input-redis (当前插件3.7.1)
执行报错:
This setting must be a ["list", "channel", "pattern_channel"]
data_type只支持list和channel。 没有stream的支持,
使用deepseek、豆包、文心一言等多种大数据检索,都告诉我支持stream. 结果我的本地项目愣是没有跑起来, 不确定是否是因为我用window跑的原因, 下次用linux跑以下试试,再来更新结论。