elasticsearch与MySQL数据同步

1:Logstash

1.1:什么是Logstash

Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集 起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。

1.2Logstash安装与测试

官网下载Logstash解压就可以了

进入bin目录,运行以下命令


./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

控制台输入字符,随后就有日志输出

stdin,表示输入流,指从键盘输入 stdout,表示输出流,指从显示器输出 命令行参数:

-e 执行

--config 或 -f 配置文件,后跟参数类型可以是一个字符串的配置或全路径文件名或全路径 路径(如:/etc/logstash.d/,logstash会自动读取/etc/logstash.d/目录下所有*.conf 的文 本文件,然后在自己内存里拼接成一个完整的大配置文件再去执行)

2:MySQL数据导入Elasticsearch

(1)在logstash安装目录下创建文件夹mysqletc (名称随意) 

(2)文件夹下创建mysql.conf (名称随意) ,内容如下:

input {

jdbc {

# mysql jdbc connection string to our backup databse 对应mysql中的test数据库

jdbc_connection_string => "jdbc:mysql://localhost:3306/mybatis-plus-test?characterEncoding=UTF8"

# the user we wish to excute our statement as

jdbc_user => "root"

jdbc_password => "root1234"

# the path to our downloaded jdbc driver

jdbc_driver_library => "/Applications/MrWang/Maven/privite_wang_repository/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar"

#the name of the driver class for mysql

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

jdbc_paging_enabled => "true"

jdbc_page_size => "50000"

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

statement => "select * from wl_user"

#定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为 每分钟都更新

schedule => "* * * * *"



}

}



output {



elasticsearch {

#ESIP地址与端口

hosts => "localhost:9200"

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

index => "wl_user"

#自增ID编号

document_id => "%{id}"

#document_id => wl_user.id

document_type => "wl_user"



}

stdout {

#以JSON格式输出

codec => json_lines

}



}

(3)命令行下执行


bin/logstash -f /mysqletc/mysql.conf

坑:我的是苹果电脑所以路径这里 没有 C、D、E、F盘,如果是Windows用户 请写自己的正确地址(这行代码:jdbc_driver_library => "/Applications/MrWang/Maven/privite_wang_repository/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar

观察控制台输出,每间隔1分钟就执行一次sql查询。

我数据库这张表就写了一条测试数据,浏览器输入http://localhost:9100/查看head插件中是否有数据库的数据

猜你喜欢

转载自blog.csdn.net/qq_42227281/article/details/98219736