es+lostash+mysql 数据的增量同步

前置 安装es和logstash  同时es已经建立对应的索引

1、下载再 logstash 目录下后使用 bin/logstash-plugin install logstash-input-jdbc 命令安装jdbc的数据连接插件

 

2、放入lib下面 mysql-connector-java-5.1.38.jar 依赖

 

3、新建 last_run_metadata_path 所需要文件(这个文件不同sql使用不同文件)建议放在 conf/run_metadata.d 文件夹下面

 

4、书写 jdbc.conf 同步数据文档 建议放在conf下面

input



{

stdin {

}

#event - stats

jdbc {

jdbc_connection_string =>

"jdbc:mysql://127.0.0.1:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"

jdbc_user =>"root"

jdbc_password =>"***"

jdbc_driver_class =>"com.mysql.jdbc.Driver"

#数据库连接jar

jdbc_driver_library =>"/usr/local/server/ucenter-elk/logstash-5.2.2/lib/mysql-connector-java-5.1.38.jar"

#分页同步 开启

jdbc_paging_enabled =>"true"

jdbc_page_size =>"50000"

#基本配置

use_column_value =>true

clean_run =>"false"

#开启增量同步操作

record_last_run =>true

#定时字段 各字段含义(由左至右)分、时、天、月、年,全部为 * 默认含义为每分钟都更新

schedule =>"*/1 * * * *"

jdbc_default_timezone =>"Asia/Shanghai"

#记录的最后同步列 将值赋值给 sql_last_value

tracking_column =>"id"

#记录同步的数值 最后文件名称为数据库加表名

last_run_metadata_path =>

"/usr/local/server/ucenter-elk/logstash-5.2.2/config/run_metadata.d/zcd_event_statistics"

#sql 语句

statement =>"select * from zcd_event_statistics where id > :sql_last_value"

#设定ES索引类型

add_field =>{"[@metadata][type]" =>"event-stats"}

}

}



filter



{

json {

source =>"message"

remove_field => ["message"]

}

mutate {

#过滤传输到ES字段 logstash会默认生成这两个

remove_field => ["@timestamp", "@version"]

}

}



output



{

if[@metadata][type] =="event-stats" {

elasticsearch {

#ESIP地址与端口 hosts 映射方式

hosts =>"172.20.4.76:9250"

#ES索引名称(自己定义的)

index =>"event-stats"

#ES类型名称

document_type =>"event-stats"

#自增ID编号

document_id =>"%{id}"

}

}



stdout {

#以JSON格式输出

codec =>json_lines

}

}

 

5、启动

 bin/logstash -f config/ucenter_es_jdbc.conf

守护后台启动

nohup bin/logstash -f config/ucenter_es_jdbc.conf >>/dev/null 2>&1 &

启动之后会有error 报出

直接bin/logstash 启动的时候,有个plugin要从stdin里面读数据

而一旦用了nohup,表明stdin就是空了,自然会报 bad file descriptor这个错。

解决的方法,一个是把logstash安装成服务,另外一个在启动时加个参数

 

nohup bin/logstash -f config.d/ucenter_es_jdbc.conf 0</dev/null >>/dev/null 2>&1 &

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值