logstash增量采集mysql的验证
2019-11-23 21:05
2166 查看
最近有一项需求需要把mysql中一个表中的数据同步到es中,分析后使用logstash的jdbc插件或取mysql中的数据,output到es中,采集的情况分两种:开始是全量的采集,之后是增量采集。
已下式验证的过程:
1.安装lonstash和mysql
mysql和logstash的安装就不多说了,可以在网上自行查找。
需要注意的事项是:
1)可能需要安装:bin/plugin install logstash-input-jdbc
2)mysql的driver下载https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
2.创建mysql表和数据
create table test.zy ( id int, str varchar(20) ) ; insert into test.zy values('1','a1'); insert into test.zy values('2','a2'); insert into test.zy values('3','a3'); insert into test.zy values('4','a4'); insert into test.zy values('5','a5'); insert into test.zy values('6','a6'); insert into test.zy values('7','a7'); insert into test.zy values('8','a8'); insert into test.zy values('9','a9'); insert into test.zy values('10','a10'); insert into test.zy values('11','a11'); insert into test.zy values('12','a12'); insert into test.zy values('13','a13'); insert into test.zy values('14','a14'); #增量采集验证插入的数据 insert into test.zy values('15','a15'); insert into test.zy values('16','a16');
3.logstash采集mysql的配置文件
#根据字段增量采集 input { jdbc { jdbc_connection_string => "jdbc:mysql://ip:3306/test" jdbc_user => "root" jdbc_password => "123456" jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" statement => "select * from zy where id > :sql_last_value" use_column_value => true tracking_column => "id" record_last_run => true last_run_metadata_path => "/root/test.log" schedule => "*/2 * * * *" } } output { file { path => "./mysql/test-%{+YYYY-MM-dd}.txt" } } #根据时间戳增量采集 input { jdbc { jdbc_connection_string => "jdbc:mysql://ip:port/test" jdbc_user => "root" jdbc_password => "123456" jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_default_timezone =>"Asia/Shanghai" #设置sql_last_value记录的时间时区,不然会影响增量采集的效果 statement => "select * from zy1 where time > :sql_last_value" use_column_value => false record_last_run => true last_run_metadata_path => "/root/test.log" schedule => "*/2 * * * *" } } output { file { path => "./db2/test-%{+YYYY-MM-dd}.txt" } } input的配置解析 statement 执行myqsl的语句,也可以是statementpath 后跟sql文件的路径 use_column_value 是否使用列值作为依据,进行上次运行位置的记录。 如果设置为true,则使用tracking_column定义的列,作为:sql_last_value. 如果设置为false,则:sql_last_value反映的是上次SQL的运行时间。 tracking_column 增量采集依据的字段名 如果 use_colomn_value为false时,可以不写 record_last_run 是否记录本次采集数据的位置 last_run_metadata_path 设置记录采集数据位置的文件 schedule sql脚本执行的频率
4.采集验证
启动logstash
cd /usr/local/logstash
bin/logstash -f conf/logtash.conf
logstash采集输出日志:
输出文件内容查看
sql_last_value的记录
相关文章推荐
- 利用logstash的logstash-input-jdbc插件实现mysql增量导入ES的介绍
- 利用logstash的logstash-input-jdbc插件实现mysql增量导入ES的介绍
- 利用Logstash的logstash-input-jdbc插件实现mysql增量导入ES
- logstash采集tomcat日志、mysql错误日志
- logstash 解析mysql slow log
- Elasticsearch JDBC的使用-MySQL 数据源导入和增量索引、更新
- mysql日常备份和增量备份SHELL脚本
- mysql mysqldump数据备份和增量备份
- 关于JDBC技术中,调用MySQL中不建议在没有服务器身份验证的情况下建立SSL连接错误解决
- 安装bugzilla卡在验证mysql连接失败
- 基于WebCollector 2.x的增量更新机制,制作新闻采集APP
- 数据采集之解析Mysql的binlog日志发送至Kafka实时消费
- MySQL密码验证实现原理
- Cobar + MySQL 技术验证(li)
- Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)
- linux系统下mysql跳过密码验证登录
- Logstash使用jdbc_input同步Mysql数据时遇到的空时间SQLException问题
- mysql xtrabackup增量备份
- mysql跳过密码验证
- mysql 增量备份还原