使用Logstash来实时同步MySQL数据到ES

上篇讲到了ES和Head插件的环境搭建和配置,也简单模拟了数据作测试

本篇我们来实战从MYSQL里直接同步数据

一、首先下载和你的ES对应的logstash版本,本篇我们使用的都是6.1.1

       下载后使用logstash-plugin install logstash-input-jdbc 命令安装jdbc的数据连接插件

 

二、新增mysqltoes.conf文件,配置Input和output参数如下,连接jdbc按照规则同步指定的数据到es

       大家注意这里的配置有很多种用法,包括同步时间规则和最后更新时间的用法就不详细展开了

input {
 stdin { }
    jdbc {
        jdbc_connection_string => "jdbc:mysql://localhost:3306/database"
 
        jdbc_user => "root"

        jdbc_password => "root"

        jdbc_driver_library => "C:/Program Files (x86)/MySQL/Connector.J 5.1/mysql-connector-java-5.1.40-bin.jar"

        jdbc_driver_class => "com.mysql.jdbc.Driver"
        
        jdbc_paging_enabled => "true"
        
        jdbc_page_size => "50000"
statement => "SELECT * FROM session"
schedule => "* * * * *" } } output { stdout { codec => json_lines } elasticsearch { hosts => "localhost:9200" index => "mainIndex" document_type => "user" document_id => "%{id}" } }

使用logstash按照conf文件执行 bin\logstash.bat -f mysqltoes.conf

注意这里可能有执行不成功的坑,主要是把配置设置好,还有文件和名称编码的问题  output es的配置用hosts

 

这时候我们可以看到MYSQL中的表数据已成功导入ES

 

相关文章

ElasticSearch和ElasticSearch Head环境搭建和数据模拟

使用logstash来实时同步MySQL数据

使用docker快速搭建ELK环境

使用NetCore向ES快速写数据的设计

NetCore结合ES亿级数据的实践

posted @ 2017-12-24 17:14  leeolevis  阅读(18648)  评论(2编辑  收藏  举报