大多数情况下我们的数据都存放在了数据库中,但是elasticsearch它有自己的索引库,那么如果我们在做搜索的是时候就需要将数据库中的数据同步到elasticsearch中,在这里我们使用logstash的logstash进行与数据库的同步,对于logstash与数据库同步,我们可以设置elasticsearch与数据库同步的时间,使用这种方式进行同步还是很方便的。
1、logstash简介
Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到搜索,logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
2、下载并安装logstash
logstash下载地址:https://www.elastic.co/cn/downloads/logstash

注意:下载的版本要和你的elasticsearch的版本号一致,我的版本elasticsearch6.5.2
下载后之后,直接解压就好

(elasticsearch的环境搭建可参考之前的文章)
3、配置logstash
3.1、引入mysql的jar包

3.2、创建一个 mysql.conf 的配置文件(命名随意),用来将es与数据库关联。
input {jdbc {# mysql 数据库链接,shop为数据库名jdbc_connection_string => "jdbc:mysql://127.0.01:3306/demo"# 用户名和密码jdbc_user => "root"jdbc_password => "123456"# 驱动jdbc_driver_library => "D:\\logstash-6.5.2\\mysql-connector-java-5.1.46.jar"# 驱动类名jdbc_driver_class => "com.mysql.jdbc.Driver"jdbc_paging_enabled => "true"# 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新schedule => "* * * * *"#清空上次的sql_last_value记录clean_run => true#执行语句statement => "select * from t_blog where update_time >:sql_last_value and update_time < now() order by update_time desc"}}output {elasticsearch {# ES的IP地址及端口hosts => ["localhost:9200"]# 索引名称index => "esblog"# 需要关联的数据库中有有一个id字段,对应类型中的iddocument_id => "%{id}"}}

4、启动elasticsearch

5、Kibana
5.1、Kibana 简介
5.2、Kibana 安装
下载地址:https://www.elastic.co/downloads/kibana

注意:下载的版本要和你的elasticsearch的版本号一致,我的版本elasticsearch6.5.2
下载后之后,直接解压就好

在D:\kibana\kibana-6.5.2-windows-x86_64\bin目录下运行kibana.bat

访问:http://localhost:5601,出现以下界面即完成安装。

6、启动logstash
在D:\logstash-6.5.2\bin目录下打开cmd控制台,输入 logstash -f ../config/mysql.conf

7、在kibana查询同步mysql到es数据

关注公众号





