Indexing 为什么kibana中没有logstash索引

Indexing 为什么kibana中没有logstash索引,indexing,logstash,elastic-stack,filebeat,Indexing,Logstash,Elastic Stack,Filebeat,在digitalocean教程之后,我用我的ELK节点作为RedHat服务器设置了ELK stack和filebeat。Kibana已经启动并运行,但是当我将索引模式配置为logstash-*时,我看不到任何logstash索引: Unable to fetch mapping. Do you have any indices matching the pattern? 当我进行卷曲以查看我拥有的索引时,它们只是filebeat索引。Filebeat应该将数据推送到正在5044上侦听的log

在digitalocean教程之后,我用我的ELK节点作为RedHat服务器设置了ELK stack和filebeat。Kibana已经启动并运行,但是当我将索引模式配置为logstash-*时,我看不到任何logstash索引:

Unable to fetch mapping. Do you have any indices matching the pattern? 
当我进行卷曲以查看我拥有的索引时,它们只是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、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      -  
您是否从管理>索引模式>添加新的,在您的
Kibana
中创建了索引

很明显,您将无法在Kibana中找到使用
logstash
创建的索引,除非您在
Kibana
Managemen
部分中手动创建它

确保使用
logstash
创建的标识的名称相同。看一看,它传达了:

定义索引模式时,必须定义与该模式匹配的索引 存在于弹性搜索中。这些索引必须包含数据

这几乎意味着索引应该存在,以便您在
Kibana
中创建索引。
logstash
只在
Elasticsearch
本身中创建索引,您必须在
Kibana
中手动创建索引,以便访问并可视化数据


希望有帮助

Filebeat使用
Filebeat YYYY.MM.dd
模式创建每日索引,因此您不应该期望在Elasticsearch中看到日志索引

Filebeat文档中推荐的方法将数据写入基于
“%{[@metadata][beat]}-%{+YYYY.MM.dd}”的索引,其中
[@metadata][beat]
默认为节拍(Filebeat)的名称,除非在Filebeat配置中配置了
输出.logstash.index
。下面是Logstash的基本配置

input {
  beats {
    port => 5044
  }   
}   

output {
  elasticsearch {
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }   
}
您可以使用以下命令检查这些索引中的数据,以查看它是否是预期从filebeat中获得的数据:


curlhttp://localhost:9200/filebeat-*/_搜索?pretty&size=100

啊,所以我想问的正确问题是,为什么我的elasticsearch中没有logstash索引?你是如何创建索引的?使用
logstash
或使用
curl
请求?我正在Kibana界面的Add New部分下定义我的索引模式,我在文本字段中键入logstash-*。我没有定义任何索引,因为它们应该已经存在于filebeat发送过来的logstash中。不,您必须键入索引的名称,即
filebeat-*
,以便它列出您的索引。logstash-*只是一个默认标记。如您所见,
logstash-*
只是一个例子。再次感谢您的快速回复达斯·维德。我知道存在filebeat索引,但这些不应该是logstash索引,因为filebeat将日志发送到logstash以处理和索引日志?我能够创建filebeat-*索引模式并查看这些filebeat索引中的数据。