Indexing 为什么kibana中没有logstash索引
在digitalocean教程之后,我用我的ELK节点作为RedHat服务器设置了ELK stack和filebeat。Kibana已经启动并运行,但是当我将索引模式配置为logstash-*时,我看不到任何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
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索引中的数据。