前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Logstash-解决elasticsearch和Mysql数据库的同步问题

Logstash-解决elasticsearch和Mysql数据库的同步问题

作者头像
名字是乱打的
发布2022-05-13 10:43:44
6640
发布2022-05-13 10:43:44
举报
文章被收录于专栏:软件工程

什么是Logstash

Logstash是一款轻量级的日志搜集处理框架可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。

我们可以用Logstash-解决elasticsearch和Mysql数据库的同步问题

我们知道logstash可以有一个功能

代码语言:javascript
复制
cmd进入logstashbin目录
 logstash ‐e 'input { stdin { } } output { stdout {} }'

控制台输入字符,随后就有日志输出

stdin,表示输入流,指从键盘输入 stdout,表示输出流,指从显示器输出 命令行参数: -e执行

--config或-f配置文件,后跟参数类型可以是一个字符串的配置或全路径文件名或全路径路径(如:/etc/logstash.d/,logstash会自动读取/etc/logstash.d/目录下所有*.conf的文本文件,然后在自己内存里拼接成一个完整的大配置文件再去执行)

利用这种特性,我们可以实现MySQL数据导入Elasticsearch

(1)在logstash-5.6.8安装目录下创建文件夹mysqletc(名称随意),加一个mysql驱动

(2)文件夹下创建mysql.conf(名称随意),内容如下:

代码语言:javascript
复制
input {
  jdbc {
      # mysql jdbc connection string to our backup databse
      jdbc_connection_string => "jdbc:mysql://192.168.106.131:3306/tensquare_article?characterEncoding=UTF8"
      # the user we wish to excute our statement as
      jdbc_user => "root"
      jdbc_password => "123456"
      # the path to our downloaded jdbc driver  
      jdbc_driver_library => "E:\tensquare\logstash-5.6.8\mysqletc\mysql-connector-java-5.1.46.jar"
      # the name of the driver class for mysql
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50"
      #以下对应着要执行的sql的绝对路径。
      #statement_filepath => ""
      statement => "SELECT id,title,content,state FROM tb_article"
      #定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新(测试结果,不同的话请留言指出)
      schedule => "* * * * *"
  }
}

output {
  elasticsearch {
      #ESIP地址与端口
      hosts => "http://127.0.0.1:9200/" 
      #ES索引名称(自己定义的)
      index => "tensquare_article"
      #自增ID编号
      document_id => "%{id}"    #{id}可以取到上面statement里的id
      document_type => "Article" #该索引库里的type名
  }
  stdout {
      #以JSON格式输出
      codec => json_lines
  }
}

(3)将mysql驱动包mysql-connector-java-5.1.46.jar拷贝至D:/logstash-5.6.8/mysqletc/下。D:/logstash-5.6.8是你的安装目录 (4)再logstash 的bin目录下cmd命令行下执行 logstash ‐f ../mysqletc/mysql.conf 即以 ../mysqletc/mysql.conf下的同步数据方式启动logstash 我们用如上的命令就可以利用logstash将指定mysql数据库中的信息同步到es中

(5)观察控制台输出,每间隔1分钟就执行一次sql查询。

再次刷新elasticsearch-head的数据显示,看是否也更新了数据。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Logstash
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档