下载logstash:https://www.elastic.co/cn/downloads/logstash/
解压到目录/usr/local下
安装插件
bin/logstash-plugin install logstash-input-jdbc
bin/logstash-plugin install logstash-output-elasticsearch
出现错误,Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
------------------
修改JVM启动参数 vim config/jvm.options
-Xms256m
-Xmx256m
再次安装,成功

下载jdbc驱动到目录
/usr/local/logstash-7.0.0/es/mysql-connector-java-8.0.13.jar
编写配置文件,使用表内自定义的date字段来设为判断增量
input {
jdbc {
jdbc_driver_library => "/usr/local/logstash-7.0.0/es/mysql-connector-java-8.0.13.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://ip:3306/realfake"
jdbc_user => "root"
jdbc_password => "password"
schedule => "* * * * *"
statement => "SELECT * FROM commodity WHERE date >= :sql_last_value"
use_column_value => true
tracking_column_type => "numeric"
tracking_column => "date"
last_run_metadata_path => "syncpoint_table"
}
}
output {
elasticsearch {
hosts => ["ip1", "ip2"]
index => "commodity"
document_type => "commodity"
document_id => "%{comm_id}"
}
}
保存为es.conf,运行,记住logstash千万不要在es服务器上运行,否则会导致es节点崩溃
nohup bin/logstash -f es/es.conf &
查看运行状态 jobs -l

往数据库中添加数据,查看效果

输入指令,查看nohup日志
tail -fn 20 nohup.out

查看es数据

成功
本文介绍如何使用Logstash从MySQL数据库中增量同步数据至Elasticsearch。包括下载与配置Logstash,安装必要插件,设置JVM参数解决内存分配问题,配置JDBC插件读取MySQL数据,并通过跟踪特定列实现增量更新,最后将数据输出至Elasticsearch。

3996

被折叠的 条评论
为什么被折叠?



