1.下载 logstash https://artifacts.elastic.co/downloads/logstash/logstash-6.3.1.tar.gz
2.tar zxvf 进行解压;
3 进入目录,并且在config下创建mysql.conf
4.将下面信息写入 mysql.conf 注意 ip端口,还有路径信息修改
input {
jdbc {
jdbc_driver_library => "/usr/local/logstash/mysql-connector-java-5.1.36.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test?autoReconnect=true&useSSL=false"
jdbc_user => "root"
jdbc_password => "root"
schedule => "* * * * *"
statement => "SELECT * FROM elktable;"
}
}
output {
elasticsearch {
index => "test"
document_type => "elktable"
document_id => "%{elkid}"
hosts => ["192.168.4.233:9200"]
}
}
5 通过 ./bin/logstash -f config/mysql.conf 进行启动, 日志信息,仅供参考,
启动之后,等大概1 分钟才执行,因为貌似,默认时间是分钟级别的定时;
如上是全量更新
增量更新配置
input {
jdbc {
jdbc_driver_library => "/es/logstash-7.8.0/mysql-connector-java-5.1.36.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://ip:3306/test"
jdbc_user => "root"
jdbc_password => "root"
schedule => "* * * * *"
last_run_metadata_path=>"/es/sql_last_value"
statement => "select * from t_user where create_time>:sql_last_value"
}
}
output {
elasticsearch {
index => "test"
document_type => "_doc"
document_id => "%{id}"
hosts => ["127.0.0.1:9200"]
}
}
sql_last_value文件中写入时间
--- 2020-08-29 06:05:00.302491000 Z
新增last_run_metadata_path的配置,然后再sql中通过 :sql_last_value来设置最后一次更新的时间,每次更新的时候都会替换sql_last_value的时间,来达到增量同步。