暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

logstash与mysql数据库同步数据到elasticsearch

xiaowen分享 2020-03-10
332

大多数情况下我们的数据都存放在了数据库中,但是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字段,对应类型中的id
document_id => "%{id}"
}
}
复制


4、启动elasticsearch



5、Kibana

5.1、Kibana 简介

Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

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数据


关注公众号


文章转载自xiaowen分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论