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开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

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

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

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

  • 26
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值