前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >11-Elasticsearch-logstash数据同步[Mysql->Logstash->Es]

11-Elasticsearch-logstash数据同步[Mysql->Logstash->Es]

作者头像
彼岸舞
发布2022-10-04 08:27:18
6370
发布2022-10-04 08:27:18
举报

logstash数据同步

简介

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

官网

代码语言:javascript
复制
https://www.elastic.co/cn/logstash/

下载地址

代码语言:javascript
复制
https://www.elastic.co/cn/downloads/logstash

功能

  • 数据采集
  • 以id或update_time作为同步边界
  • logstash-input-jdbc 插件
  • 在es中, 预先创建索引

logstash安装

上传MySQL的驱动包和logstatch的安装包

代码语言:javascript
复制
# 解压
tar -zxvf logstash-6.4.3.tar.gz
# 移动
mv logstash-6.4.3 /usr/local/
# 进入
cd /usr/local/logstash-6.4.3/
# 创建文佳佳
mkdir sync
# 进入sync
cd sync/
# 将驱动包拷贝到当前目录
cp /home/software/mysql-connector-java-5.1.41.jar ./
# 创建同步配置文件
vi logstash-db-sync.conf

配置文件

代码语言:javascript
复制
input {
    jdbc {
      # 设置MySQL数据库URL以及数据库名称
      jdbc_connection_string => "jdbc:mysql://192.168.246.1:3306/foodie-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"
      # 用户名 密码
      jdbc_user => "root"
      jdbc_password => "123456"
      # 驱动包
      jdbc_driver_library => "/usr/local/logstash-6.4.3/sync/mysql-connector-java-5.1.41.jar"
      # 驱动类
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      # 开启分页
      jdbc_paging_enabled => true
      # 每页数据量
      jdbc_page_size => "10000"
      # 执行的SQL文件路径
      statement_filepath => "/usr/local/logstash-6.4.3/sync/foodie-items.sql"
    # 设置定时任务间隔 含义: 分, 时, 天, 月, 年, 全部为*, 每分钟跑一次
      schedule => "* * * * *"
      # 索引类型
      type => "_doc"
      # 是否开启记录上次追踪的结果, 也就是上次的更新时间, 这个会记录到last_run_metadata_path的文件
      use_column_value => true
      # 记录上一次追踪的结果值
      last_run_metadata_path => "/usr/local/logstash-6.4.3/sync/track_time"
      # 如果 use_column_value 为 true, 配置本参数, 追踪的column名 可以是自增id或者时间
      tracking_column => "update_time"
      # tracking_column 对应的字段类型
      tracking_column_type => "timestamp"
      # 是否清除 last_run_metadata_path 的记录, true 则每次都从头开始查询所有的数据库记录
      clear_run => false
      # 数据库字段名, 大写转小写
      lowercase_column_names => false
  }
}
output {
    elasticsearch {
      # es 地址
      hosts => ["192.168.247.142:9200"]
      # 同步的索引名
      index => "foodie-items"
      # 设置docid和数据库id相同
      document_id => "%{id}"
  }
    # 日志输出
    stdout {
      codec => json_lines
  }
}
vi foodie-items.sql
select a.*,a.update_time from items a where a.isMaon = 1 and a.update_time >= :sql_last_value

启动

代码语言:javascript
复制
# 进入文件夹
cd /usr/local/logstash-6.4.3/bin
# 启动
./logstash -f /usr/local/logstash-6.4.3/sync/logstash-db-sync.conf

记录时间

Logstash 多表同步到ES

代码语言:javascript
复制
https://www.jianshu.com/p/2abcd6892c31

自定义Mapping配置中文分词

从ES中获取logstash模板

代码语言:javascript
复制
http://192.168.247.142:9200/_template/logstash

获取到之后修改

增加分词器设置

删除外侧的logstatch包裹

其他不需要改动

进入sync目录创建文件, 将修改后的内容粘贴到文件中

vi logstash-ik.json

修改 logstash-db-sync.conf 配置文件

在es配置中增加自定义模板配置

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • logstash数据同步
    • 简介
      • 官网
        • 功能
          • logstash安装
            • 启动
              • Logstash 多表同步到ES
                • 自定义Mapping配置中文分词
                相关产品与服务
                云数据库 MySQL
                腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档