logstash多个input,使用type指定多个output
conf配置文件
// An highlighted block
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://10.136.220.35:3306/test?characterEncoding=UTF-8&useSSL=false&autoReconnect=true"
jdbc_user => "root"
jdbc_password => "root"
jdbc_driver_library => "/root/logstash/logstash/lib/mysql-connector-java-5.1.44.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
codec => plain { charset => "UTF-8"}
tracking_column => update_time
record_last_run => true
last_run_metadata_path => "/root/logstash/logstash/lastrun/.logstash_jdbc_last_run"
jdbc_default_timezone => "Asia/Shanghai"
statement_filepath => "/root/logstash/logstash/jdbcsql/jdbc.sql"
clean_run => false
schedule => "* * * * *"
type => "user"
}
jdbc {
jdbc_connection_string => "jdbc:mysql://10.136.220.35:3306/test?characterEncoding=UTF-8&useSSL=false&autoReconnect=true"
jdbc_user => "root"
jdbc_password => "root"
jdbc_driver_library => "/root/logstash/logstash/lib/mysql-connector-java-5.1.44.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
codec => plain { charset => "UTF-8"}
jdbc_default_timezone => "Asia/Shanghai"
statement_filepath => "/root/logstash/logstash/jdbcsql/jdbc2.sql"
clean_run => false
schedule => "* * * * *"
type => "my_role"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
if[type] == "user"{
elasticsearch {
hosts => "127.0.0.1:9200"
index => "user"
document_id => "%{id}"
}
}
if[type] == "my_role"{
elasticsearch {
hosts => "127.0.0.1:9200"
index => "role"
document_id => "%{id}"
}
}
stdout {
codec => json_lines
}
}
jdbc.sql配置
select id,name, type as role_type from sys_role
注意表中如果有type字段,需要给个别名,否则和logstash的默认type冲突,导致output中的type判断有误。