Logstash7.12.1安装logstash-integration-jdbc依赖冲突怎么解决
解决方案
根因说明
本次依赖冲突是由于源码构建logstash-integration-jdbc时未绑定本地Logstash 7.12.1的依赖包,Bundler解析公共库依赖时,不同依赖链对logstash-core的版本范围要求无法匹配,导致安装失败。
优先方案:直接使用Logstash内置工具安装(无需编译源码)
无需手动处理JRuby、bundler等环境依赖,直接调用Logstash自带的插件管理工具即可完成安装:
- 进入Logstash安装根目录
- 执行在线安装命令:
bin/logstash-plugin install logstash-integration-jdbc - 安装完成后执行
bin/logstash-plugin list | grep jdbc验证安装结果
如果服务器无法连接外网,可提前下载对应版本的gem包后离线安装:
- 在联网环境下载适配Logstash 7.12.1的logstash-integration-jdbc v5.1.1版本gem包
- 将gem包上传到服务器后执行:
bin/logstash-plugin install /本地gem包的绝对路径
备选方案:源码编译适配安装
如果必须从源码编译安装,按以下步骤操作即可解决冲突:
- 切换到适配Logstash 7.12.1的插件版本标签,避免主分支代码版本不匹配:
cd 本地logstash-integration-jdbc源码目录 git checkout v5.1.1
- 构建时指定本地Logstash安装路径,直接关联本地已有的logstash-core依赖,无需从远程拉取:
./gradlew vendor -Dlogstash.path=/本地Logstash安装根目录的绝对路径
- 构建完成后打包生成gem包,再用Logstash内置工具安装:
gem build logstash-integration-jdbc.gemspec # 执行完成后会生成logstash-integration-jdbc-5.1.1.gem文件 /本地Logstash安装根目录/bin/logstash-plugin install logstash-integration-jdbc-5.1.1.gem
注意事项
- 不要直接在插件源码目录执行
bundle install,Logstash插件依赖需要和本地Logstash环境绑定,独立执行bundle会拉取不匹配的公共依赖 - 安装插件时避免使用root权限操作,防止后续普通用户运行Logstash时出现权限不足无法调用插件的问题
内容的提问来源于stack exchange,提问作者yuliansen
相关产品推荐
相关产品推荐

