logstash无法mysql加载驱动_Logstash安装记录(报错com.mysql.jdbc.Driver not loaded的解决)...

Logstash是es官方标配的ELK中的“L”,它们三者的关系是这样:“E”指elasticsearch,用来提供核心的搜索服务;“L”指logstash,用来实现源数据到es索引库的收集、转换、入库;“K”指Kibana,用来通过丰富的图表化界面展示数据。安装这个logstash真的是比较坑,尤其是对于没接触过的人来说,安装过程好多问题都莫名其妙。

1、服务器上我测试的es版本与logstash版本均是7.5。首先安装logstash,去官网下载对应版本的zip包,下载后解压到目录即可:

61274db17b175863bc634c0bec7f07dc.png

2、在bin目录下新建一个配置文件sql2es.conf(文件名自定,但是扩展名得是conf),用来指定要从哪个数据库同步数据到es索引库。具体配置可自行百度,需要注意的是红框里的。jdbc_driver_library配置的是logstash要使用的jdbc驱动,你访问mysql就去下载mysql的驱动jar包,访问sqlserver就去下载sqlserver的驱动jar包,下载完毕后这里配置成本地jar包的位置就好。我使用的是mysql-connector-java-8.0.18.jar,对应下面一行的jdbc_driver_class要配置成“com.mysql.cj.jdbc.Driver”,否则会出错。原来老版本配置的是com.mysql.jdbc.Driver,这里要特别注意。我测试的配置是从本地的mysql数据库中的t_owner表同步数据到es索引testdata下,文档类型为owner。

d7b0a2ad3d4bac99b431dd1dbd30fbdb.png

3、cmd进入到logstash的斌目录下,运行一下看看行不行:logstash -f sql2es.conf:-f表示按照指定的配置文件来运行。这么顺利吗?果然还是出错了:报错:com.mysql.jdbc.Driver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driver_library?  上网一查说是本地logstash-input-jdbc没有安装好,但是要安装这个东东,需要去更新ruby的某些文件,因为logstash使用ruby语言写的。

4、修改logstash根目录下的Gemfile文件,把source改成“https://gems.ruby-china.com/”。这个东东是用来指定ruby源的,国内的源下载安装速度比较快。

d67bf8a33d99916ffe173c65fc8ba4c5.png

5、运行logstash-plugin install logstash-input-jdbc。应该会提示安装成功。再运行一下logstash -f sql2es.conf看看行不行,然并卵,问题依旧。继续上网各种搜各种试,终于发现一篇帖子:https://www.jianshu.com/p/0e893f29ee05,有提到是这个版本有bug,需要升级(心中顿时万马奔腾...)。我本地的默认版本是4.3.16,不好使。

90ef8eb73bf7f6ad2a9e365fdb14fe94.png

6、去github下载最新版(当前最新版本是4.3.19)zip包,下载后解压并在本地编译生成gem文件并安装。

运行gem build logstash-input-jdbc.gemspec,生成.gem文件:

0b562353b0ae3e3ce0c532d62ea4c9e4.png

运行logstash-plugin.bat install logstash-input-jdbc-4.3.19.gem,在本地安装最新版本:

3184865e1f90c21f75e22f145418703f.png

7、再试试,运行logstash -f sql2es.conf。终于不报错了,但是报mysql的timezone时区错误。这个好办,去mysql里设置一下默认时区:

e349578e0b04705cf1bb29c046eb8ac2.png

8、再次尝试,成功了!它终于开始干活了。满屏的数据滚动起来罗。

35c55b467c0aefcec938003ba724ef76.png

注意,如果本地没有安装ruby的话,前面步骤中的gem命令运行不起来。去官网下载一个最新版安装就好(可能需要重启服务器):https://rubyinstaller.org/downloads/

4cd5062e7a5f6e702fce460098994022.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值