es和Mysql数据同步

Logstash是一款轻量级的日志搜集处理框架,可以把分散的,多样化的日志搜集起来,并且自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。1.如果我们令mysql与ES连接上,那么我们可以借助一个脚本连接器,去将它实现,而logstash也就实现了这一点,其原理,是从mysql中抽出数据,然后转换成es的表结构去add,基本原理就是这个意思,下面来说一下操作步骤和指令

1.下载与es 相同版本的Logstash

https://www.elastic.co/cn/downloads/logstash  

2.解压到项目目录

tar -zxvf logstash-7.14.0-linux-x86_64.tar.gz 

3.进入logstash 目录

 cd  /home/data/logstash-7.14.0


4.创建jdbc 文件夹

mkdir jdbc
 

5.下载 mysql-connector-java 解压后 放入 jdbc文件夹中

 下载地址 : https://mvnrepository.com/artifact/mysql/mysql-connector-java

选择版本后:

es和Mysql数据同步_第1张图片6.在jdbc 下面创建mysql.conf文件

内容:

input {
jdbc {
    jdbc_connection_string =>"jdbc:mysq1://127.0.0.1:3306/im?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedstatements=true"
    jdbc_user => "root"
    jdbc_password -> "112233"
    jdbc_driver_1ibrary => "/home/data/logstash-7.14.0/jdbc/mysql-connector-java-8.0.26.jar"
    jdbc_driver_class =>"com.mysq1.cj.jdbc.Driver"
    schedule =>"* * * * *"
    tracking_column=> "id"
    use_column_value => true
    1ast_run_metadata_path => "/home/data/logstash-7.14.0/last.log"
    statement =>"select id,tit1e goods"
filter {
    mutate {
         remove_filed =>["@timestamp","@version"]
    }
}
output {
    elasticsearch {
        hosts => "127.0.0.1:9200"
        index => "tp6_demo"
        document_id =>"%{id}"
    }
 }


内容解释

es和Mysql数据同步_第2张图片

 7. 创建 索引  tp6_demo

 $a = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();
 $index = [
            'index' => 'tp6_demo', //索引名称
            'body' => [
                 'mappings' => [
                     'properties'=>[
                         'id' => [
                             'type' => 'integer'
                         ],

                         'title' => [
                             'type' => 'text',
                             'analyzer' => 'ik_max_word'  //指定IK分词器
                         ]
                     ]
                 ]
            ]
        ];
        $res = $a->indices()->create($index);
        p($res);
索引结构和mysql数据表对应

es和Mysql数据同步_第3张图片

 运行 :

  /home/data/logstash/logstash-7.14.0/bin/logstash  -f   /home/data/logstash/logstash-7.14.0/jdbc/mysql.conf

你可能感兴趣的:(es和Mysql数据同步,Logstash配置,mysql-connector)