欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Logstash 从mysql导入到Elasticsearch(全量导入)

程序员文章站 2022-06-11 11:37:45
...

1.elasticsearch版本:7.1.1

2.logstash版本:7.1.1

 步骤

  1. 在logstash目录下建立目录mysql_plugin
  2. 目录下建立一个xxxx.conf文件  名字随意               
  3. 建立sql文件

xxx.conf

input {
    stdin {
    }
    jdbc {
   
      jdbc_connection_string => "jdbc:mysql://localhost:3306/yourdatabase?characterEncoding=UTF-8&useSSL=false"

      jdbc_user => "yourname"
      jdbc_password => "password"

      jdbc_driver_library => "D:/tools/gradle-4.10.3/repository/caches/modules-2/files-2.1/mysql/mysql-connector-java/5.1.10/b83574124f1a00d6f70d56ba64aa52b8e1588e6d/mysql-connector-java-5.1.10.jar"

      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "1000"
   
      statement_filepath => "D:/tools/es/logstash-7.1.1/mysql_plugin/xxx.sql"
  

    }
}
 
filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}
 
output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "youindexname"
        document_type => "_doc"

    }
    stdout {
        codec => json_lines
    }
}

xxx.sql

select * from yourtable

 启动脚本

切换到logstash的bin目录下,执行以下命令

logstash -f ../mysql_plugin/xxx.conf 

 多脚本启动

若启动多个脚本,需要指定data目录,因为不同的软件进程会使用不同的缓存数据,若再启动一个xxx2.conf配置,需要使用以下命令

logstash -f ../mysql_plugin/xxx2.conf --path.data=../data2/

前提是在logstash目录下建立一个data2的文件夹

注意

 xxx.conf文件内的代码不要有注释