先說結論, 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跑以下試試,再來更新結論。?