ELK —— Logstash 将 MySQL 数据同步至 ElasticSearch

  • 一、搭建环境

    • 1.0 环境依赖
  • 1.1 搭建 ElasticSearch 环境

    • 1.1.1 ElasticSearch 简介
  • 1.1.2 启动 ElasticSearch

  • 1.2 Logstash(多数据源采集系统)

  • 1.3 Kibana(可视化面板)

  • 二、Logstash 配置

    • 2.1 配置数据库连接
  • 2.2 配置同步 ES

  • 2.3 重新启动

  • 三、下一步更新计划

Author:Gorit

Date:2021/4/7

Refer:各种同类文章参考融合 + 自己的思考总结

2021年发表博文: 16/50

一、搭建环境

=====================================================================

官网介绍

下载地址

1.0 环境依赖


  1. windows 10 开发环境

  2. jdk1.8 环境(最低版本要求,我看到目前最新)

  3. 配置好 JAVA_HOME,以及 classpath

  4. 相同版本的 ELK (我目前用的是 7.10.0,最新版本的已经更新到了 7.12.0。一定要下载相同版本的,不然会出现莫名其妙的 BUG

  5. mysql-connector-java.jar (8.0 或者 5.5 都可以,这个从maven 仓库里面找,因为同步数据用的是 jdbc)

  6. ELK 三个下载好的软件放在一起,目录中不要出现 空格,中文什么的,也会出现莫名其妙的 BUG

1.1 搭建 ElasticSearch 环境


1.1.1 ElasticSearch 简介

ElasticSearch 是基于 Lucence 的分布式搜索引擎,也可以作为“数据库”存储一些数据,同类产品还有一个叫做 solr 的,这里就不做描述

1.1.2 启动 ElasticSearch

  1. 不了解 ES 的可以先看这篇 文章,毕竟ES 的概念还是挺多的

PS:近期我会整理出 ES 的基本操作的文档,

  1. ES 的项目结构

在这里插入图片描述

  1. ES 启动很简单,一键启动即可 bin/elasticsearch.bat

  2. ES 会占用 92009300 端口

[2021-04-07T15:02:36,121][INFO ][o.e.t.TransportService ] [DESKTOP-8HFODO1] publish_address {127.0.0.1:9300}, bound_addresses {127.0.0.1:9300}, {[::1]:9300}

[2021-04-07T15:02:39,181][INFO ][o.e.h.AbstractHttpServerTransport] [DESKTOP-8HFODO1] publish_address {127.0.0.1:9200}, bound_addresses {127.0.0.1:9200}, {[::1]:9200}

  1. 打开游览器访问 http://localhost:9200,可以看到你的 ES 基本信息,说明你就搭建完成了

在这里插入图片描述

1.2 Logstash(多数据源采集系统)


  1. 项目结构

在这里插入图片描述

  1. 这里需要配置一些东西才能启动,并且需要启动参数才能解决。启动 Logstash logstash -f …/config/logstash-sample.conf 即可

  2. 但是看不到效果,因为要和 ES 配合使用才行

1.3 Kibana(可视化面板)


  1. 是一个纯前端项目,下载好后,项目结构如下

在这里插入图片描述

  1. 启动方式同 ES,在 bin/kibana.bat ,双击即可启动

  2. 输入 http://localhost:5601 即可看到 Kibana 的控制面板,但是发现页面全是英文的,但是 kibana 也是支持中文的。

  3. 进入 config/kibana.yml ,的最后一行

在这里插入图片描述

  1. 然后重新启动即可

在这里插入图片描述

  1. 进入工作页

在这里插入图片描述

二、Logstash 配置

============================================================================

2.1 配置数据库连接


  1. 将下载好的 mysql-connector-java.8.22.jar 拷贝到 lib/mysql/

在这里插入图片描述

  1. 进入 config 目录,拷贝 logstash-sample.conf 并重命名为 logstash.conf

  2. 查看 logstash.conf 的内容

Sample Logstash configuration for creating a simple

Beats -> Logstash -> Elasticsearch pipeline.

logstash 收集模块,从日志,数据库中采集数据

input {

beats {

port => 5044

}

}

logstash 输出模块,将采集好的数据同步至 ES

output {

elasticsearch {

hosts => [“http://localhost:9200”]

index => “%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}”

#user => “elastic”

#password => “changeme”

}

}

  1. 因此我们需要修改 input 中的内容

input {

beats {

port => 5044

}

可以在 logstash 控制台输入相对应的参数,来改变 output 的行为

stdin {}

jdbc {

type => “jdbc”

数据库连接地址,我的是 MySQL 8.0 的,所以连接必须带上时区

jdbc_connection_string => “jdbc:mysql://连接地址:3306/数据库名称?characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai”

数据库连接账号密码

jdbc_user => “root”

jdbc_password => “root”

MySQL依赖包路径,名称一定要对应;

jdbc_driver_library => “…/lib/mysql/mysql-connector-java-8.0.22.jar”

the name of the driver class for mysql

jdbc_driver_class => “com.mysql.cj.jdbc.Driver”

数据库重连尝试次数

connection_retry_attempts => “3”
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

读者福利

由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

更多笔记分享

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
伴**

[外链图片转存中…(img-HO4pa5IN-1713373944135)]

[外链图片转存中…(img-qWnPF1cD-1713373944135)]

[外链图片转存中…(img-qbXmcjSR-1713373944136)]

更多笔记分享

[外链图片转存中…(img-RTKJE0P9-1713373944136)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 25
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值