第一次写技术博客不太会弄,大家凑合看吧
一、准备工作
1.操作系统 Ubuntu 16.04.1
2.数据库版本 mysql 5.7.20
3.Logstash的下载链接
Logstash | Elastic
4.mysql-connector
Download Connector/J二、在系统上查看Curl 工具是否已安装
命令:dpkg -l

发现ubuntnu里有这个工具了就可以接着下一步了
三、在系统上装Elasticsearch
装ES的教程就不细说了,ES装好以后检查服务器中是否可以通过curl命令访问到ES服务
curl -u ES用户名:ES密码 -XGET 'http://ES服务IP:9200/?pretty'
或者
curl -u ES用户名 -XGET 'http://localhost:9200/?pretty'
输入密码,默认用户名elastic 密码changeme,出现以下结果说明curl是可以访问到ES服务的

三、安装Logstash
先解压下载的压缩包然后安装插件
命令分别是(在Logstash主目录下运行):
./bin/logstash-plugin install logstash-input-jdbc
./bin/logstash-plugin install logstash-output-elasticsearch
四、在数据库中添加字段
alter table dialogs add updatetime timestamp null default current_timestamp on update current_timestamp ;

五、配置ES-数据库同步的配置文件
首先把jar包拖到当前路径下

接着创建数据库在服务器中中创建Logstash配置文件
文件名为logstash-mysql-es.conf

然后往上写配置参数

library写自己jar文件名
class照着抄
连接参数localhost,端口默认3306,最后是要同步的数据库名
schedule => "*"表示每分钟刷新一次,这也是MySQL数据同步的最小频率
六、同步数据

服务器中指定参数启动Logstash服务,执行命令:
logstash -f logstash-mysql-es.conf
或者
bin/logstash -f logstash-mysql-es.conf
logstash这个东西启动的比较慢,一会冒出来一大堆字符串就是启动成功了

之后会每分钟刷新数据库
往数据库里插入两条数据以后,可以发现ES同步更新了
由于之前在Logstash配置文件中,output部分既配置了输出到ES,同时也输出到控制台。所以当检测到MySQL中有更新时,数据会输出到控制台中,如下图:

在服务器中执行命令检查ES服务中的索引是否被创建。执行以下命令:
curl 'localhost:9200/_cat/indices?v'

显示索引被创建了
然后字段查询call_id为xxxx的东西
curl -u elastic -XGET 'localhost:9200/dialogs/_search?q=call_id:1526895885-273269&pretty'


至此,MySQL中的数据已经被成功索引到Elasticsearch,并也可以被准实时的检索到
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31509949/viewspace-3127386/ ,如需转载,请注明出处,否则将追究法律责任。