当前位置: 首页 > 知识库问答 >
问题:

为什么kibana中没有logstash索引

施辉
2023-03-14

根据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

在我的麋鹿节点上,我可以清楚地看到端口5044正在监听:

$ netstat -tulpn | grep -i listen | grep -v tcp6
 tcp        0      0 :::5044                     :::*                        LISTEN      -  

共有2个答案

后易安
2023-03-14

您是否在管理层的Kibana中定义了索引

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

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

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

这基本上是说索引应该存在,以便您在Kibana中创建索引。logstash只在Elasticsearch本身中创建索引,而您必须在Kibana中手动创建索引,以便访问并可视化数据

希望有帮助!

公孙霖
2023-03-14

Filebeat使用Filebeat YYYY的模式创建每日索引。嗯。dd所以你不应该期望在Elasticsearch中看到logstash索引。

Filebeat文档中推荐的Logstash配置将数据写入基于“%{[@metadata][beat]}-%{YYYY.MM.dd}”的索引,其中[@metadata][beat]默认为节拍(Filebeat)的名称,除非输出。logstash。索引在文件节拍配置中配置。下面是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-*/_搜索?漂亮的

 类似资料:
  • 我正在尝试使用logstash配置在kibana中可视化mongodb数据。下面是我的配置。我在终端中得到一些输出,它永远循环。我看不到由配置文件中提到的名称创建的任何索引,如果索引是生成的,也没有任何数据。在discover选项卡中没有匹配的结果。如何在Kibana中使配置可视化数据? http://localhost:9200/ayesha_logs/_search?漂亮 终端日志:D,[20

  • 问题内容: 我正在探索EKL堆栈并遇到问题。 我已经生成了日志,将日志转发到logstash,日志采用JSON格式,因此仅使用Logstash配置中的JSON过滤器将它们直接推入ES,连接并启动指向ES的Kibana。 Logstash配置: 现在,我已经为每天的日志创建了索引,而Kibana高兴地显示了来自所有索引的所有日志。 我的问题是:日志中有许多字段未启用/未在Kibana中进行过滤的索引

  • 问题内容: 我有2张表,如下所示: 当我解释查询时: postgres给我这个: 过了一会儿给我这个完全相同的查询(仍然不使用索引): 我的问题是:如果我仅按构成唯一索引的st值和类型值进行过滤,为什么不使用此唯一索引? 问题答案: 您的表没有足够的行来使用索引。它们适合放在单个磁盘页面中,因此使用cpu时间读取整个内容并筛选出行要比两次执行同​​一操作(一次用于索引,另一次用于数据)要快。

  • 我正在带有IIS 7.5的Windows Server 2008 R2上运行它。ELK版本:ElasticSearch v1.4.4 Logstash v1.4.2 Kibana 4.0.1 我可以让简单的cmd行输入工作。logstash.conf: 然后从../bin运行logstash,使用: 我输入的内容将添加到logstash-2015-03-18文档中。 但是,我需要logstash来

  • 问题内容: 我知道每次键入字符串文字时,字符串池中都会引用相同的String对象。 但是,为什么String API不包含,所以我可以使用引用? 至少,这将节省编译时间,因为编译器将知道引用现有的String,而不必检查是否已创建它以进行重用,对吗?我个人认为,字符串文字(尤其是很小的文字)在许多情况下是一种“代码异味”。 那么是否没有String.Empty背后的宏伟设计原因,还是语言创建者根本

  • 问题内容: 在Java中,有和接口。两者都属于Java的标准框架,并提供了一种访问元素的分类方法。 但是,据我了解没有。你可以用来对列表进行排序。 知道为什么要这样设计吗? 问题答案: 列表迭代器首先确保你以列表的内部顺序(也称为插入顺序)获取列表的元素。更具体地说,它是按照插入元素的顺序或操作列表的方式进行的。排序可以看作是对数据结构的一种操作,有几种方法可以对列表进行排序。 我将按照自己的见解