logstash配置多入多出並互相隔離

需求:須要利用同一logstash進程採集不一樣日誌,輸出到es的不一樣index,各輸入輸出隔離;

主要須要解決以下兩個問題: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

相關文章
相關標籤/搜索