使用logstash同步mysql 多表数据到ElasticSearch实践
参考样式即可,具体使用配置参数根据实际情况而定
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost/数据库名"
jdbc_user => "root"
jdbc_password => "password"
jdbc_driver_library => "mysql-connector-java-5.1.45-bin.jar所在位置"
jdbc_driver_class => "com.mysql.jdbc.Driver"
codec => plain {charset => "UTF-8"}
record_last_run => true
jdbc_paging_enabled => "true"
jdbc_page_size => "1000"
statement => "sql statement"
schedule => "* * * * *"
type => "数据库表名1"
tags => "数据库表名1"
}
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost/数据库名"
jdbc_user => "root"
jdbc_password => "password"
jdbc_driver_library => "mysql-connector-java-5.1.45-bin.jar所在位置"
jdbc_driver_class => "com.mysql.jdbc.Driver"
codec => plain {charset => "UTF-8"}
record_last_run => true
jdbc_paging_enabled => "true"
jdbc_page_size => "1000"
statement => "sql statement"
schedule => "* * * * *"
type => "数据库表名2"
tags => "数据库表名2"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
if [type] == "数据库表名1"{
elasticsearch {
hosts => ["els的host地址"]
index => "数据库表名1对应的els的index"
document_id => "%{唯一id}"
}
}
if [type] == "数据库表名2"{
elasticsearch {
hosts => ["els的host地址"]
index => "数据库表名2对应的els的index"
document_id => "%{唯一id}"
}
}
stdout {
codec => json_lines
}
}