logstash同步mysql数据到es(二、jdbc_driver_library问题)

pipeline error {:pipeline_id=>"pipeline1", :exception=>#<LogStash::PluginLoadingError: unable to load /home/test/logstash/mysql-connector-j-8.0.32.jar from :jdbc_driver_library, file not readable (please check user and group permissions for the path)>, :backtrace=>["/usr/share/logstash/vendor/bundle/jruby/3.1.0/gems/logstash-integration-jdbc-5.4.6/lib/logstash/plugin_mixins/jdbc/common.rb:59:in `block in load_driver_jars'",

还是那个配置文件:

复制代码
input {
  jdbc {
    jdbc_driver_library => "/home/test/logstash/mysql-connector-j-8.0.32.jar"
    jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/_test"
    jdbc_user => "root"
    jdbc_password => "root"
    #启用分页,默认false
    jdbc_paging_enabled => "true"
    #页面大小
    jdbc_page_size => "500"
    #是否记录上次运行的结果
    record_last_run => true
    #记录上次运行结果的文件位置
    last_run_metadata_path => "/usr/share/logstash/pipeline/lastvalue.txt"
    #是否使用数据库某一列的值,
    use_column_value => true
    tracking_column => "id"
    #numeric或者timestamp
    #tracking_column_type => "numeric"
    #如果为true则会清除last_run_metadata_path记录,即重新开始同步数据
    clean_run => false
    # sql语句文件,对于复杂的查询,可以放在文件中,如:
    # statement_filepath => "jdbc.sql"这个文件路径要跟jdbc.sql对应上
    #设置监听间隔。可以设置每隔多久监听一次什么的。
    #官方举例:
    #* 5 * 1-3 * 一月到三月的每天凌晨5点每分钟执行一次。
    #0 * * * *   将在每天每小时的第0分钟执行。
    #0 6 * * *   America/Chicago每天早上6:00(UTC / GMT -5)执行。
    #* * * * *   分、时、天、月、年,全部为*默认含义为每分钟查询一次
    schedule => "* * * * *"
    #索引类型
    #type => "jdbc"
    statement => "SELECT * FROM testORDER BY id ASC"
  }
}

output {
   elasticsearch {
                 hosts => "localhost:9200"
                 index => "test"
                 user => "elastic"
                 password => "elastic"
                 timeout => 3000
                 document_id => "%{id}"
                 #template => "/home/test/logstash/config/test.json"
                 template_name => "test"
                 }
}

这里由于我的es模板一直创建不上,所以就选择了注释掉,手动创建(这里也没变):

复制代码
curl -X PUT -u elastic:elastic http://localhost:9200/_template/test-H 'Content-Type: application/json' -d'
{
  "index_patterns": ["test*"],
  "mappings": {
    "properties": {
      "id": { "type": "integer" },
      "accession": { "type": "keyword" },
      "name": { "type": "keyword" },
      "comment_text": { "type": "text" },
      "sequence": { "type": "text" },
      "keyword": { "type": "keyword" }
    }
  }
}
'

这里我真真真是搞了好久,说下思路:

1.猜测权限问题,直接chmod 777 mysql-connector-j-8.0.32.jar

2.怀疑jar包问题,重新下载了jar

3.百度有的小伙伴说是斜杠问题,我换了\和/都不行

4.百度有的小伙伴分享是相对路径换成绝对路径,我都试了,还是不行

5.镇定下来~~~~~

一直报加载问题,权限给了,jar包都换了,还是不行。

问题还是出现在路径 上,我用的docker 啊,我那路径配的是本地路径,容器内读不到啊。

尽管我使用容器卷挂载了,但是也不行啊。

静下来的脑子才会动

于是我马上换上容器内的路径,好使了~

启动logstash的方式,我的配置文件,jar都放在了config中

docker run -d -p 5044:5044 -v /home/test/logstash/config:/usr/share/logstash/config -v /home/test/logstash/pipeline:/usr/share/logstash/pipeline --name logstash logstash

相关推荐
秃了也弱了。30 分钟前
DBSyncer:开源数据库同步利器,MySQL/Oracle/ES/SqlServer/PG/
数据库·mysql·开源
鱼儿也有烦恼30 分钟前
Elasticsearch最新入门教程
java·elasticsearch·kibana
花晓木35 分钟前
Filebeat收集nginx日志到elasticsearch,最终在kibana做展示(二)
elasticsearch·搜索引擎
路修35 分钟前
Spring Boot + Elasticsearch + HBase 构建海量数据搜索系统
spring boot·elasticsearch·hbase
喜欢踢足球的老罗1 小时前
使用 Spring Boot 3.3 和 JdbcTemplate 操作 MySQL 数据库
数据库·spring boot·mysql
G皮T1 小时前
【Elasticsearch】Elasticsearch 核心技术(二):映射
大数据·elasticsearch·映射·搜索·动态映射·mappings
不太可爱的大白3 小时前
MySQL 索引:为使用 B+树作为索引数据结构,而非 B树、哈希表或二叉树?
数据结构·b树·mysql
大数据009 小时前
Docker慢慢学
mysql·docker·kafka·n8n
我的golang之路果然有问题10 小时前
ElasticSearch+Gin+Gorm简单示例
大数据·开发语言·后端·elasticsearch·搜索引擎·golang·gin
BillKu10 小时前
Vue3+Vite中lodash-es安装与使用指南
大数据·elasticsearch·搜索引擎