配置文件的主要几个文件
/usr/local/logstash-6.8.4/ 我logstash 的解压目录
对应数据库所需jar包 /usr/local/logstash-6.8.4/sync-db/mysql-connector-java-5.1.46.jar MySQL为例
执行的sql文件 /usr/local/logstash-6.8.4/sync-db/guli.sql

input {

  1. jdbc {
  2. #设置连接字符串
  3. jdbc_connection_string =>"jdbc:mysql://101.133.224.127:3306/guli_edu?useUnicode=true&characterEncoding=utf8"
  4. #用户名和密码
  5. jdbc_user => "root"
  6. jdbc_password =>"11111111"
  7. #数据库的驱动地址
  8. jdbc_driver_library =>"/usr/local/logstash-6.8.4/sync-db/mysql-connector-java-5.1.46.jar"
  9. #驱动类名
  10. jdbc_driver_class => "com.mysql.jdbc.Driver"
  11. #开启分页
  12. jdbc_paging_enabled => "true"
  13. #分页每页数量
  14. jdbc_page_size =>"1000"
  15. #执行sql文件路径
  16. statement_filepath =>"/usr/local/logstash-6.8.4/sync-db/guli.sql"
  17. #设置定时任务间隔, 含义:分,时,天,月,年,全部为* 默认含义为每分钟跑一次
  18. schedule => "* * * * *"
  19. #索引类型
  20. type => "_doc"
  21. #是否开启记录上次追踪的结果,也就是上次更新的时间,这个会记录到 last_run_metadata_path的文件
  22. use_column_value => true
  23. #记录上次追踪的结果值 文件路径
  24. last_run_metadata_path => ""
  25. #如果 use_column_value 为 ture ,配置本参数追踪的column名 可以是自增id或者时间
  26. tracking_column =>"gmt_modified"
  27. #tracking_column 对应的字段类型
  28. tracking_column_type => "timestamp"
  29. #是否清除 last_run_metadata_path 的记录,true表示每次都从头开始查找
  30. clean_run => false
  31. #数据库字段名称大写转小写
  32. lowercase_column_names => false
  33. }

}

output {

elasticsearch {

es地址

hosts =>[“”]

同步的索引名

index =>”xiaohu”

设置_docID和数据相同

document_id => “%{id}”

}

#日志输出

stdout {

codec => json_lines

}

}

启动到bin目录下面指定 文件启动 ./logstash -f 配置文件路径
可能会出现以下错误:
com.mysql.jdbc.Driver not loaded. Are you sure you’ve included the correct jdbc driver in :jdbc_driver_library?
image.png

解决思路:
虽然官方在logstash 5版本就说有集成插件但是出现问题咋就解决

使用jdbc-input-plugin插件出现异常:com.mysql.jdbc.Driver not loaded. Are you sure you’ve included the correct jdbc driver in :jdbc_driver_library

去github 下载插件文件

jdbc插件地址

Logstash是ruby语言写的而安装依赖需要一个插件 gem

yum install gem -y

按完成把下载的 logstash-input-jdbc.gemspec 解压到 /usr/local/logstash-input-jdbc-4.3.19

进入到解压后的文件夹目录生成.gem文件

gem build logstash-input-jdbc.gemspec

构建完gem文件后到 logstash/bin目录下面执行

我的logstash是6.8.4 执行的命令是 logstash-plugin install /usr/local/logstash-input-jdbc-4.3.19/logstash-input-jdbc-4.3.19.gem 文件路径

如果在logstash的目录下面没有 logstash-plugin 命令可能是 logstash-plugin.bat logstash-plugin.bat install /usr/local/logstash-input-jdbc-4.3.19/logstash-input-jdbc-4.3.19.gem 文件路径

然后到启动
./logstash -f /usr/local/logstash-6.8.4/sync-db/logstash-db.conf

然后就成功了,可以看到logstash到数据库去查询并添加到了 Elasticsearch 里面去了
image.png