美文网首页
使用logstash将mysql中数据更新到elasticsea

使用logstash将mysql中数据更新到elasticsea

作者: 背负代码的宇智波 | 来源:发表于2018-11-30 15:55 被阅读0次

1.安装与elasticsearch相同版本号的logstash

在logstash的bin目录下
  打开控制台 输入   logstash -e "input { stdin { } } output { stdout { } }"

注意:双引号不能改成单引号否则可能会报

ERROR: Unknown command '{'

错误

返回我们输入的结果则证明安装成功

2.配置数据库同步的模板

在logstash建立mysqletc文件夹在文件夹内建一个配置文件例如mysql.conf内容如下

input {

  jdbc {

  # mysql jdbc connection string to our backup databse

  jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/tensquare_article?characterEncoding=UTF8"

  # the user we wish to excute our statement as

  jdbc_user => "root"

  jdbc_password => "123456"

  # the path to our downloaded jdbc driver 

  jdbc_driver_library => "D:\tensquare\logstash-6.5.1\logstash-6.5.1\mysqletc\mysql-connector-java-5.1.46.jar"

  # the name of the driver class for mysql

  jdbc_driver_class => "com.mysql.jdbc.Driver"

  jdbc_paging_enabled => "true"

  jdbc_page_size => "20"

  #以下对应着要执行的sql的绝对路径。

  #statement_filepath => ""

  statement => "SELECT id,title,content,state FROM tb_article"

  #定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新(测试结果,不同的话请留言指出)

      schedule => "* * * * *"

  }

}

output {

  elasticsearch {

  #ESIP地址与端口

  hosts => "127.0.0.1:9200"

  #ES索引名称(自己定义的)

  index => "tensquare_article"

  #自增ID编号

  document_id => "%{id}"

  document_type => "article"

  }

  stdout {

      #以JSON格式输出

      codec => json_lines

  }

}

然后将mysql数据库驱动放入此文件夹内

3.运行logstash

打开cmd进入logstash/bin目录下 logstash -f 配置文件的相对路径例如:

logstash -f ../mysqletc/mysql.conf

mysql里先插入两条试验数据

一分钟后看到控制台上打印出sql语句

elasticsearch-head成功显示出插入的数据

至此,数据同步成功。

相关文章

网友评论

      本文标题:使用logstash将mysql中数据更新到elasticsea

      本文链接:https://www.haomeiwen.com/subject/jdyhcqtx.html