我根据digitalocean教程将ELK堆栈和filebeat设置为我的ELK节点作为RedHat服务器 . Kibana启动并运行,但是当我将索引模式配置为logstash- *时,我没有看到任何logstash索引:
Unable to fetch mapping. Do you have any indices matching the pattern?
当我做一个curl来查看我拥有的索引时,它们只是filebeat索引 . Filebeat应该将数据推送到正在监听5044的logstash
$curl 'localhost:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open filebeat-2017.01.10 5 1 3864 0 1.7mb 1.7mb
yellow open filebeat-2017.06.17 5 1 1848 0 740.1kb 740.1kb
yellow open filebeat-2017.01.18 5 1 77062 0 33mb 33mb
yellow open filebeat-2017.09.14 5 1 1932 0 1.1mb 1.1mb
yellow open filebeat-2017.01.11 5 1 19094 0 3.6mb 3.6mb
yellow open .kibana
你可以看到我只有filebeat索引 . 根据教程,我检查了我的端口是否打开,我的配置文件是否正确 . 可能有什么不对? Filebeat应该将日志从/var/log/*.log发送到logstash,再发送到elasticsearch .
当我
tail /var/log/logstash/logstash.log
我的logstash日志中没有任何内容 . 我已经检查过了logstash,filebeat,kibana和elasticsearch都在运行 . 我也完成了配置文件测试,它说没关系:
$sudo service logstash status
logstash is running
在我的ELK节点上,我可以清楚地看到端口5044正在侦听:
$ netstat -tulpn | grep -i listen | grep -v tcp6
tcp 0 0 :::5044 :::* LISTEN -
2 回答
你
Kibana
中的索引是Kibana
,来自 Management > Index Patterns > Add New ?它's obvious that you won'能够在Kibana中找到您使用
logstash
创建的索引,除非您在Kibana
的Managemen
部分内手动创建它 .确保您使用
logstash
创建的indice名称相同 . 看看doc,它传达了:这几乎说明你应该在
Kibana
中创建索引 .logstash
的作用是,只在Elasticsearch
本身创建索引,您必须在Kibana
中手动创建它们才能访问和可视化数据 .希望能帮助到你!
Filebeat使用
filebeat-YYYY.MM.dd
模式创建每日索引,因此您不应期望在Elasticsearch中看到logstash索引 .Filebeat文档中推荐的Logstash configuration将数据写入基于
"%{[@metadata][beat]}-%{+YYYY.MM.dd}"
的索引,其中[@metadata][beat]
默认为节拍名称(filebeat),除非在Filebeat配置中配置output.logstash.index
. 这是Logstash的基本配置 .您可以检查这些索引中的数据,看看它是否是您希望通过以下命令从filebeat获得的:
curl http://localhost:9200/filebeat-*/_search?pretty&size=100