Elasticsearch同步Mysql数据库(Windows环境下->logstash

ElasticSearch与Mysql

1. logstash的安装

首先在官网下载logstash
下载地址(logstash:https://www.elastic.co/downloads/logstash

注意:下载的logstash版本要和elasticsearch一致

下载好后,解压,打开就能使用了:
在这里插入图片描述

2. logstash的配置

在安装完成logstash之后,我们就需要配置对应的数据库信息了(mysql
① 在解压的logstash里面创建一个mysql文件夹(名字随便起的
在这里插入图片描述
②下载对应的mysql-connector-java-8.0.13.jar包,并放入mysql文件夹里面
下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.13

③ 写一个find.sql文件,(复制配置需要写入的数据库信息
里面的内容只有一行

//user 为需要导入的表
select * from user

④同样再mysql文件夹里面,写一个conf文件(jdbc.conf)
赋值在里面写对应的配置信息:
注意:这个配置文件的格式保存的时候必须是:CONF文件,不然可能会报错

input {
    
    
    stdin {
    
    
    }
    jdbc {
    
    
      # mysql 数据库链接,center为数据库名,jdbc版本比较大的要加上?后面那串字符
      jdbc_connection_string => "jdbc:mysql://localhost:3306/数据库名字?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
      # 用户名和密码
      jdbc_user => "root"
      jdbc_password => ""
      # 驱动
      jdbc_driver_library => "E:\logstash-5.6.8\mysqletc\mysql-connector-java-8.0.13.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      # 执行的sql 就是上一步创建的sql文件的绝对路径+文件名字
      statement_filepath => "F:\elasticsearch\logstash-7.6.2\mysql\find.sql"
      # 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
      schedule => "* * * * *"
      # 索引类型
      type => "center"
    }
}


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


output {
    
    
    elasticsearch {
    
    
        # ES的IP地址及端口
        hosts => ["localhost:9200"]
        # 索引名称,elasticsearch叫做索引,在数据库中叫表名
        index => "article"
        # 自增ID id必须是待查询的数据表的序列字段
        document_id => "%{id}"
    }
    stdout {
    
    
       # JSON格式输出
        codec => json_lines
    }
}

完成好之后mysql文件夹里面的内容如下:
在这里插入图片描述

第一步 启动elasticsearch.bat文件,打开elasticsearch,运行成功可以看到:

在这里插入图片描述

第二步:打开一个新的终端窗口,进入到C:\Windows\System32\cmd.exe目录下

在这里插入图片描述

第三步:运行logstash -f …/mysql/jdbc.conf,其中logstash -f 表示运行指令, …/mysql/jdbc.conf表示我们配置的jdbc.conf文件路径,成功启动后,可以在终端中看见运行的sql和同步的数据

在这里插入图片描述

第四步:测试是否成功

运行kibana,
在这里插入图片描述
输入:

//article 为conf文件里面对应的索引名
GET  article
{
    
    
  "query":{
    
    
    "match_all": {
    
    }
  }
}

可以查询到对应的数据库文件了,数据也全部导入了(每个3秒会刷新数据库文件
在这里插入图片描述
其中:timestamp和version是elastisearch自己添加的字段

有问题 ,评论区留言,我很快回复!!

猜你喜欢

转载自blog.csdn.net/weixin_42061487/article/details/106089416