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)

总结

谈到面试,其实说白了就是刷题刷题刷题,天天作死的刷。。。。。

为了准备这个“金三银四”的春招,狂刷一个月的题,狂补超多的漏洞知识,像这次美团面试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的

并且我也将自己刷的题全部整理成了PDF或者Word文档(含详细答案解析)

我的美团offer凉凉了?开发工程师(Java岗)三面结束等通知...

66个Java面试知识点

架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)

我的美团offer凉凉了?开发工程师(Java岗)三面结束等通知...

算法刷题(PDF)

我的美团offer凉凉了?开发工程师(Java岗)三面结束等通知...

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)

[外链图片转存中…(img-t4HMZASH-1713839576315)]

算法刷题(PDF)

[外链图片转存中…(img-XbbZGQbm-1713839576315)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ELK是指ElasticsearchLogstash和Kibana三个开源软件的组合,可以用来处理和可视化大规模数据。在ELK中,Logstash用于数据收集、处理和转换,Elasticsearch用于数据存储和检索,Kibana用于数据可视化。 以下是将MySQL数据导出到Elasticsearch的大致步骤: 1. 安装ElasticsearchLogstash和Kibana。 2. 创建一个Logstash配置文件,指定MySQL作为数据源,并将数据导入到Elasticsearch中。例如,以下是一个简单的Logstash配置文件示例: ``` input { jdbc { jdbc_connection_string => "jdbc:mysql://localhost:3306/mydatabase" jdbc_user => "myuser" jdbc_password => "mypassword" jdbc_driver_library => "/path/to/mysql-connector-java.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" statement => "SELECT * from mytable" } } output { elasticsearch { hosts => ["localhost:9200"] index => "myindex" document_type => "_doc" } } ``` 在这个配置文件中,我们使用jdbc插件来读取MySQL中的数据,然后使用elasticsearch插件将数据写入到Elasticsearch中。 3. 运行Logstash,让它开始读取MySQL中的数据并将数据导入到Elasticsearch中。你可以通过以下命令来启动Logstash: ``` bin/logstash -f /path/to/config/file.conf ``` 这里的`/path/to/config/file.conf`是你的Logstash配置文件的路径。 4. 检查Elasticsearch中是否已经成功导入了MySQL中的数据。你可以使用Kibana等工具来浏览和查询Elasticsearch中的数据。 需要注意的是,这只是一个简单的示例,你需要根据自己的具体情况来设置Logstash的配置文件。同时,也需要确保MySQLElasticsearch都已经正确地安装和配置好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值