1、先安装ElasticSearch
可以查看我的上篇文章,内容比较详细:传送门
2、安装同版本的logstash
现在给出我下载的连接:传送门
3、安装解压后,在bin的同目录下创建一个mysql文件夹
4、在mysql文件夹里面放进自己maven仓库里面mysql文件夹下的mysql驱动
名称一般都是mysql-connector-java-***.jar
我在这里使用的是mysql8的
5、因为我们需要在ElasticSearch上面select数据库里面的内容
所以我们在logstash的mysql文件夹下面创建一个find.sql里面的内容为:
select * from user
注意:(user为你自己mysql里面存在的表)
6、创建一个logstash连接数据库和ElasticSearch的jdbc.conf文件
jdbc.conf的内容为:
input {
stdin{
}
jdbc {
# mysql 数据库链接,center为数据库名
jdbc_connection_string => "jdbc:mysql://localhost:3306/flower?serverTimezone=UTC"
# 用户名和密码
jdbc_user => "root"
jdbc_password => "123456"
# 驱动
# jdbc_driver_library => "G:\logstash\logstash-7.4.2\logstash-7.4.2\mysql\mysql-connector-java-8.0.18.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
# 执行的sql 就是上一步创建的sql文件的绝对路径+文件名字
statement_filepath => "G:\logstash\logstash-7.4.2\logstash-7.4.2\mysql\find.sql"
# 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
# 索引类型
type => "flower"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
elasticsearch {
# ES的IP地址及端口
hosts => ["localhost:9200"]
# 索引名称
index => "user"
# 自增ID id必须是待查询的数据表的序列字段
document_id => "%{userid}"
}
stdout {
# JSON格式输出
codec => json_lines
}
}
7、然后我们运行ElasticSearch.bat启动ElasticSearch
8、进入到logstash的bin目录下
按住shift+鼠标右键,打开powershell窗口,输入以下命令
.\logstash -f …/mysql/jdbc.conf
你会看见你数据库里面被select的数据内容
9、启动并打开ElasticSearch-Head
在首页就会看见索引,然后还可以查看数据浏览就能看到所有的mysql表数据