注意: 第一次导入时,先同步数据
1.kibana先创建 mysql_woc_user 索引 PUT mysql_woc_user
2.pipline 配置 关闭跟踪记录结果,去掉 where 条件查询
通过logstash 从MYSQL增量同步到Elasticsearch 时区问题
kibana 时区设置:
pipline 配置:
input {
jdbc {
jdbc_driver_library => "/usr/share/logstash/vendor/jdbc/mysql-connector-java-5.1.49.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver" # 8.0以上版本:一定要把serverTimezone=UTC天加上
jdbc_connection_string => "jdbc:mysql://xxxxxxx.mysql.rds.aliyuncs.com:3306/woc?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true"
jdbc_user => "root"
jdbc_password => "root"
schedule => "* * * * *"
statement => "SELECT * FROM bl_user WHERE update_time > :sql_last_value "
# 是否开启记录上次追踪的结果,也就是上次更新的时间,这个会记录到 last_run_metadata_path 的文件
use_column_value => true
#是否记录上次执行结果, 如果为真,将会把上次执行到的 tracking_column 字段的值记录下来,保存到 last_run_metadata_path 指定的文件中
record_last_run => true
# 记录上一次追踪的结果值
last_run_metadata_path => "/usr/share/logstash/sync/track_time"
tracking_column_type => "timestamp"
tracking_column => "update_time"
# 是否清除 last_run_metadata_path 的记录,true则每次都从头开始查询所有的数据库记录
clean_run => false
# 数据库字段名称大写转小写
lowercase_column_names => false
jdbc_default_timezone => "Asia/Shanghai"
# 开启分页
jdbc_paging_enabled => "true"
# 分页每页数量,可以自定义
jdbc_page_size => "1000"
}
}
output {
elasticsearch {
# ES的IP地址及端口
hosts => ["http://es01:9200"]
user => "elastic"
password => "Hbwdl+NdmetqYg"
# 索引名称 可自定义
index => "mysql_woc_user"
# 需要关联的数据库中有有一个id字段,对应类型中的id
document_id => "%{uid}"
document_type => "user"
}
stdout {
# JSON格式输出
codec => json_lines
}
}