docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES

0    40    2

Tags:

👉 本文共约3092个字,系统预计阅读时间或需12分钟。

一、前言

在数据量大的企业级实践中,Elasticsearch显得非常常见,特别是数据表超过千万级后,无论怎么优化,还是有点力不从心!使用中,最首先的问题就是怎么把千万级数据同步到Elasticsearch中,在一些开源框架中知道了,有专门进行同步的!那就是Logstash。在思考,同步完怎么查看呢,这时Kibana映入眼帘,可视化的界面,让使用更加的得心应手哈!!这就是三剑客ELK。不过大多时候都是进行日志采集的,小编没有用,只是用来解决一个表的数据量大,查询慢的!后面小编在专门搭建日志采集的ELK

二、三者介绍

1. Elasticsearch

Elasticsearch 是一个分布式RESTful 风格的搜索数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。

2. Kibana

Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。

3. Logstash

Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。

三、版本选择

现在最新版就是8.5,最新的教程少和问题未知,小编选择7版本的,求一手稳定哈!

于是去hub.docker查看了一下,经常用的版本,最终确定为:7.17.7

dockerHub官网地址:https://hub.docker.com/_/elasticsearch

官方规定:
安装 Elastic Stack 时,您必须在整个堆栈中使用相同的版本。例如,如果您使用的是 Elasticsearch 7.17.7,则安装 Beats 7.17.7、APM Server 7.17.7、Elasticsearch Hadoop 7.17.7、Kibana 7.17.7 和 Logstash 7.17.7

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

四、搭建mysql

1. 拉去MySQL镜像

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES![在这里插入图片描述](https://img-blog.csdnimg.cn/0709ce9181a04bfcb97504cae7189ba5.png

)

2. Docker启动MySQL

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

3. Docker配置MySQL

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

4. Docker重启MySQL使配置生效

5. 新增数据库

在这里插入图片描述

6. 新建测试表

五、ELK搭建准备

1. 创建挂载的文件

es挂载:

kibana挂载:

logstash挂载:

2. ES挂载具体配置

输入下面命令:

http.host:任何地址都可以访问。
xpack.security.enabled:关闭密码认证

3. Kibana挂载具体配置

内容:

elasticsearch.hosts:指向es地址

4. Logstash挂载具体配置

内容:

记录存放:

内容:

jdbc_driver_library:指定必须要自己下载mysql-connector-java-8.0.28.jar,版本自己决定,下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

statement:如果sql长,可以指定sql文件,直接指定文件所在位置,这里的位置都为容器内部的地址;

last_run_metadata_path:上次记录存放文件对应上方的log。

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

流水线指定上面的配置文件:

内容:

最终/mydata/elk/logstash/config/下的文件

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

防止保存没有修改权限,可以把上面建的文件夹和文件赋予修改权限:

五、运行容器

0. docker compose一键搭建

在elk目录创建:

内容如下:

一定要在docker-compose.yml所在目录执行命令!!

运行:

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

完成后可以跳到5进行查看kibana!!

1. 运行ES

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

2. 运行Kibana

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

3. 运行Logstash

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

4. 容器完结图

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

5. 访问Kibana

在这里插入图片描述

六、新建索引

七、测试

新增几条记录,然后查看Logstash日志

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

我们去kibana看一下是否已存在:
输入命令:

我们看到存在6条,和mysql一致!!

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES在这里插入图片描述

参考

https://mp.weixin.qq.com/s/MEQEUhtjZnlWD_kSzAdzng

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部