2016-07-05 80 views
0

根據logstash-logs,我使用的是來自https://hub.docker.com/r/sebp/elk/的Docker ELK容器,一切正常並且正在運行。Logstash無法通過Kafka接收數據

現在,我嘗試從卡夫卡接收數據並寫入到ES具有以下配置:

input { 
    kafka { 
     topic_id => "collectortopic" 
     zk_connect => "172.17.0.2:2181" 
     type => "kafka-input" 
    } 
} 
output { 
    elasticsearch { 
     hosts => ["172.17.0.4:9200"] 
     codec => json 
    } 
    stdout { 
     codec => json 
    } 
} 

但在我設置什麼似乎是錯誤的,因爲我無法接收任何數據。在控制檯中沒有Logstash輸出,也沒有Kibana中的任何數據,因爲沒有創建logstash索引,根據插件文檔,這應該是默認行爲。

我卡夫卡的設置是好的,因爲我可以與其他應用程序發送和接收數據,zk_connect是正確的也一樣,否則我得到的例外......

任何想法?

提前致謝!

P.S:卡夫卡0.9.1,2.3.3 Logstash,ES 2.3.3

+0

如果這仍然不起作用,你可以爲elk和kafka添加docker run命令嗎?我相信你沒有正確設置IP,這是造成你的問題。 –

回答

0

在猜測Logstash的失敗無論你是發送解析。它有效的JSON?你有沒有檢查日誌錯誤?

+0

是的,發送的JSON有效並且日誌中沒有錯誤。 –

1

您是否檢查過Logstash服務器是否可以與Kafka和Elasticsearch進行通信?

您可以使用此:

對於Elasticsearch:

curl 172.17.0.4:9200 

如果你應該有這樣一個答案:

{ 
    "name" : "inf01-log-els", 
    "cluster_name" : "inf01-log-els", 
    "version" : { 
    "number" : "2.2.1", 
    "build_hash" : "d045fc29d1932bce18b2e65ab8b297fbf6cd41a1", 
    "build_timestamp" : "2016-03-09T09:38:54Z", 
    "build_snapshot" : false, 
    "lucene_version" : "5.4.1" 
    }, 
    "tagline" : "You Know, for Search" 
} 

卡夫卡,你可以用這個檢查:

telnet 172.17.0.2 2181 

我遇到了一些ELK問題。

+0

我該如何檢查? –

+0

@MarkusLamm我編輯了我的答案 – baudsp

0

在我的情況下,卡夫卡在另一個容器中運行,我必須將KAFKA_ADVERTISED_HOST_NAME設置爲IP地址而不是本地主機。

感謝您的想法!

0

您是否嘗試過將logstash-input-kafka插件版本更新爲任何> 3.x.x? 根據documentation,Kafka 0.9+支持插件版本3.x +。默認情況下,Logstash 2.x的插件版本爲2.x.