我使用https://hub.docker.com/r/sebp/elk/中的Docker ELK容器,根据logstash-logs,一切正常并正在运行。
现在我尝试从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索引,这应该是根据插件文档的默认行为。
我的Kafka设置很好,因为我可以与其他应用程序发送和接收数据,zk_connect也是正确的,否则我会得到例外...
有什么想法吗?
提前致谢!
P.S。:Kafka 0.9.1,Logstash 2.3.3,ES 2.3.3
答案 0 :(得分: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"
}
对于kafka,您可以查看:
telnet 172.17.0.2 2181
我有一些ELK问题。
答案 1 :(得分:0)
猜测Logstash无法解析您发送的任何内容。它是有效的JSON吗?你有没有检查日志错误?
答案 2 :(得分:0)
在我的情况下,Kafka在另一个容器中运行,我必须将KAFKA_ADVERTISED_HOST_NAME设置为IP地址而不是localhost。
感谢您的想法!
答案 3 :(得分:0)
您是否尝试过将logstash-input-kafka插件版本更新为任何内容> 3.x.x? 根据{{3}},插件版本3.x +支持Kafka 0.9+。 Logstash 2.x仍然默认带有插件版本2.x。