elasticsearth 同步数据库 logstash 《SpringBoot集成Elasticsearch-四》

1. 下载 logstash 对应elasticsearth 版本

https://artifacts.elastic.co/downloads/logstash/logstash-7.9.1.tar.gz

2. 在elasticsearth 根目录下新建一个配置文件夹(叫什么都行)

image.png

jdbc驱动 可以在maven 仓库里复制出来
另外两个文件是新建的
mysql.sql 随便写个select语句

select dept_id, dept_name  from sys_dept

mysql.config

input {
    jdbc {
      jdbc_connection_string => "jdbc:mysql://2xx.xx.xx.x7:3306/es?serverTimezone=GMT%2B8&useSSL=false"
      #这个useSSL=false后缀是为了解决closing inbound before receiving peer's close_notify错误
      jdbc_user => "root"
      jdbc_password => "xxxxxxx"
      jdbc_driver_library => "/var/es/esjdbc/logstash-7.9.1/mysql/mysql-connector-java-8.0.13.jar"
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      statement_filepath => "/var/es/esjdbc/logstash-7.9.1/mysql/mysql.sql"
      schedule => "* * * * *"
    }
}

filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}

output {
    elasticsearch {
        hosts => ["2xx.xx.xx.x7:9200"]
        index => "synces"
 # 需要关联的数据库中有有一个id字段,对应类型中的id
        document_id => "%{id}"
  #索引名
        document_type => "deptName"
    }
    stdout {

        codec => json_lines
    }
}

3.启动

./logstash -f ../mysql/mysql.conf

image.png

因为 schedule => "* * * * *"这里配置的意思是每分钟
所以每分钟会同步一次数据库

4. 用elasticsearch-head查看数据

image.png

没有elasticsearch-head 怎么办
Chrome插件方式
安装地址:https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm/
本地项目方式
https://github.com/mobz/elasticsearch-head
下载代码,然后npm 安装 启动

logstash只支持增量 相关问题请查看https://blog.csdn.net/laoyang360/article/details/51747266

你可能感兴趣的:(elasticsearth 同步数据库 logstash 《SpringBoot集成Elasticsearch-四》)