2017-04-19 31 views
0

我有在建立ELK堆麻煩,Logstash不開放輸入端口,用於filebeat

Filebeat被配置,

filebeat.prospectors: 
- input_type: log 
    paths: 
     - /var/log/syslog 
     #- c:\programdata\elasticsearch\logs\* 
     document_type: syslog 

output.logstash: 
    # The Logstash hosts 
    hosts: ["localhost:5044"] 
    bulk_max_size: 1024 

這些是logstash輸入文件,

對於輸入,

input { 
    beats { 
    type => beats 
    port => 5044 
    } 
} 

用於輸出,

output { 
    elasticsearch { 
    hosts => ["localhost:9200"] 
    manage_template => false 
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" 
    document_type => "%{[@metadata][type]}" 
    } 
} 

我可以在filebeat日誌中看到,這是給我這個錯誤,

2017-04-19T15:30:55+05:30 ERR Connecting error publishing events (retrying): dial tcp 127.0.0.1:5044: getsockopt: connection refused 

顯然,端口沒有被logstash開了,我也可以通過netstat的看到端口未打開聆聽。

爲什麼端口沒有被logstash打開,我錯過了什麼? 另外,當端口打開後,它是否會自動將數據發送到logstash,然後logstash然後發送到elasticsearch?

+0

我將運行Logstash並啓用調試日誌記錄,以瞭解爲什麼它不綁定到端口5044並提供日誌。默認情況下,它應該綁定到所有接口(0.0.0.0)。在netstat顯示Logstash正在偵聽之前,我會讓Filebeat遠離等式。 –

回答

0

當你在同一個盒子上有一個完整的logstash實例時,我對你爲什麼有filebeat輪詢日誌有些困惑。 Logstash可以完成Filebeat的功能並避免整個問題。

input { 
    file { 
    path => [ "/var/log/syslog" ] 
    type => "syslog" 
    } 
} 

但是,你想知道爲什麼Logstash沒有打開端口。我建議改變你的節拍輸入是這個,測試一下:

input { 
    beats { 
    type => beats 
    host => "localhost" 
    port => 5044 
    } 
} 

它會告訴節拍輸入綁定到「localhost」的特別,這就是Filebeat期待找到一個監聽端口。