logstash实现ElasticSearch与mysql数据库同步

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhulu52166/article/details/84674130

logstash实现ElasticSearch与mysql数据库同步

在使用elasticsearch开发查询功能时,数据的同步也是其中关键一步,这两天时间开发了个基于elasticsearch的全文搜索功能,顺便把如何实现elasticsearch与mysql的数据同步配置了一下。

操作系统:Linux centos7.x

1.安装logstash

(1)下载logstash,注意下载的版本需要和elasticsearch的版本一直,我elasticsearch版本是elasticsearch-6.5.1,下载的时候就需要下载logstash-6.5.1。

把logstash下载到你指定的目录,执行下载命令:wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.1.zip。

(2)解压logstash,执行命令:unzipvf logstash-6.5.1.zip

(3)测试logstash,进入logstash-6.5.1/bin,执行命令:./logstash -e ‘input { stdin { } } output { stdout {} }’,耐心等待一会,控制台提示启动成功后,输入一句话测试一下helloworld,回车后输出你输入的helloword则说明安装成功。

2.配置logstash:实现ElasticSearch与mysql数据库的数据同步,我们需要配置一下,把mysql中的数据同步到ElasticSearch。

(1)在logstash-6.5.1文件目录下新建一个文件夹,名字随意,我这里创建的是mysqltest文件夹。

(2)在mysqltest文件夹下首先创建mysql.conf文件,文件内容如下:

input {
    stdin {
    }
    jdbc {
      # mysql 数据库链接,shop为数据库名
      jdbc_connection_string => "jdbc:mysql://192.168.2.205:3306/zhulu"
      # 用户名和密码
      jdbc_user => "root"
      jdbc_password => "root"
      # 驱动,我这里把驱动也放到mysqltest目录下了
      jdbc_driver_library => "/usr/download/logstash-6.5.1/mysqltest/mysql-connector-java-5.1.7-bin.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      # 执行的sql 文件路径+名称
      statement_filepath => "/usr/download/logstash-6.5.1/mysqltest/test.sql"
      # 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
      schedule => "* * * * *"
      # 索引类型
      type => "item"
    }
}

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

output {
    elasticsearch {
        hosts => ["192.168.2.205:9200"]
        index => "dingding"
        document_id => "%{item_id}"
    }
    stdout {
        codec => json_lines
    }
}

(3)创建一个sql文件,命名为test.sql(名称随意)和上边mysql.conf的配置文件一致,需要往elasticsearch中同步哪些字段自己定义。

SELECT
  item_id,
  type_id,
  title,
  summary,
  content
FROM item

(4)注意最后不要忘记把mysql驱动放到文件夹里面!

3.启动logstash,启动命令:./logstash -f mysqletc/mysql.conf,我这个写法的当前启动目录是logstash-6.5.1文件夹下。稍等片刻就会看到数据同步了。
在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页