主要須要解決以下兩個問題:html
一、如何加載多個配置文件?java
普通啓動方式:nohup bin/logstash -f config/logstash.conf &服務器
多配置文件啓動方式:nohup bin/logstash -f config/java-conf &elasticsearch
注意:java-conf爲目錄,將加載該目錄下全部配置文件;不要使用config/java-conf/*.confpost
問題:配置不當,各輸入輸出會存在交叉,解決辦法參考如下第二點。.net
二、如何隔離各輸入輸出?日誌
利用type,對輸入輸出進行篩選,配置參考:htm
log1.conf
input {
file {
type => "log1"
path => "/**/log1.log"
discover_interval => 10 # 監聽間隔
start_position => "beginning" #從頭開始
}
}blog
#輸出到elasticsearch
output {
if [type] == "log1"{
elasticsearch {
index => "log1-%{+YYYY.MM.dd}"
hosts => "192.168.2.32:9200" #輸出到elasticsearch 對應服務器
}
}
}進程
log2.conf
input {
file {
type => "log2"
path => "/**/log2.log"
discover_interval => 10 # 監聽間隔
start_position => "beginning" #從頭開始
}
}
#輸出到elasticsearch
output {
if [type] == "log2"{
elasticsearch {
index => "log2-%{+YYYY.MM.dd}"
hosts => "192.168.2.32:9200" #輸出到elasticsearch 對應服務器
}
}
}
PS:index名不能包含大寫字母。
啓動多個logstash並行消費kafka數據。
1.設置相同topic
2.設置相同groupid
3.設置不一樣clientid
4.input 的這個參數 consumer_threads => 10 多實列相加最好等於 topic分區數
若是一個logstash得參數大於topic,則topic數據都會被這個logstash消費掉
logstash_1
logstash_2