2016-07-05 82 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.