Kibana在“发现”选项卡中未显示任何结果


79

我设置了elasticsearch和Kibana来索引我们的应用程序(错误)日志。问题是Kibana在“发现”选项卡中不显示任何数据。

现在的情况

  • Elasticsearch已启动并正在运行,响应API
  • 直接在Elasticsearch上执行查询http://elasticserver.com:9200/applogs/_search?q=*(例如)会返回很多结果(请参见下文,找到一条记录的样子)
  • Kibana已启动并正在运行,甚至找到了applogsElasticsearch公开的索引
  • Kibana还会显示applogs文档的正确属性和数据类型
  • 即使将时间段设置为几年,“发现”标签也不会显示任何结果。

有任何想法吗??

这就是Kibana如何看待applogs索引

在此处输入图片说明

弹性搜索查询结果对象如下所示:

{
_index: "applogs",
_type: "1",
_id: "AUxv8uxX6xaLDVAP5Zud",
_score: 1,
_source: {
   appUid: "esb.Idman_v4.getPerson",
   level: "trace",
   message: "WS stopwatch is at 111ms.",
   detail: "",
   url: "",
   user: "bla bla bla",
   additionalInfo: "some more info",
   timestamp: "2015-03-31T15:08:49"
 }
},

..以及我在发现标签中看到的内容

在此处输入图片说明


1
在将索引添加到kibana时添加时间戳了吗?
阿尼什(Anish)2015年

@Ngeunpo您能否详细说明您的意思?
2015年

9
可能是您应该从右上角切换时间范围:)
Anish

2
@Ngeunpo这样做的话,如果您查看屏幕截图,它将被设置为“过去60天”,因此不会成为问题。
2015年

6
如果您喜欢我,那么您的数据中可能没有任何时间戳数据。尝试取消Index contains time-based events,当你正在创建的索引图案。
Automatico

Answers:


155

对于谁有问题的人喜欢这样的:

更改右上角的时间范围。

默认情况下,它显示最近15分钟的数据


1
好吧...如果您看一下我的截图,那根本不是事实。我想象了过去60天。无论如何,这个问题似乎已经解决了。不好的部分是我不知道为什么它最初不起作用。但是将删除此问题,因为它没有提供任何解决方案
Juri

1
另外:确保创建并选择要查看的正确索引。在设置选项卡中创建它,然后在发现选项卡的左侧选择它。
Automatico

11
这实际上很难发现,很好的答案。
TomSelleck

2
是的,也有同样的问题,因此不得不将其更改为今年,并且开始显示所有内容
ashim888'Mar 27''16

我遇到了同样的问题,每分钟有超过2万个请求,因此时间范围不是根本原因。我还尝试按照以下建议刷新设置中的索引模式。也没有帮助。最后的选择可能是重新创建模式,但是我会丢失我认为由计算字段生成的数据。
Reddy SK

29

我想对此发表评论,但不幸的是,我无法提供不足的存储库来这样做。因此,正如@Ngeunpo所建议的,这是在创建索引时将时间字段添加到索引的方法在此处输入图片说明。如果创建索引时没有这样做,建议您删除该索引并重新创建它。gif中的索引名称logstash- *与索引applogs类似。在这种情况下,将@timestamp字段添加为时间字段。让我知道这个是否奏效。

编辑:图片提供:这个精彩的ELK设置指南


9

Kibana不了解 如果格式不正确,则时间戳字段。在配置索引模式时,通过单击时间字段名称选择的时间戳记必须为:

"timestamp":"2015-08-05 07:40:20.123"

那么您应该像这样更新索引映射:

curl -XPUT 'http://localhost:9200/applogs/1/_mapping' -d'
{
  "1": {
    "timestamp": {
      "enabled": true,
      "type": "date",
      "format": "yyyy-MM-dd HH:mm:ss.SSS",
      "store": true
    }
  }
}'

看到这个问题和答案

更新

如果您正在使用ES 2.X,您可以设置"format""epoch_millis"这样的:

curl -XPUT 'http://localhost:9200/applogs/1/_mapping' -d'
{
  "1": {
    "timestamp": {
      "type": "date",
      "format": "epoch_millis",
      "store": true,
      "doc_values": true
    }
  }
}'


4

我遇到了同样的问题,这对我有用:

  1. 从“设置”选项卡中删除索引。
  2. 重新启动Kibana
  3. 然后重新添加设置

我敢肯定,时间序列问题也可能是一个问题,但是如果“发现”选项卡中没有实际显示任何字段,那么您可能会遇到与原始报告者相同的问题以及我所遇到的问题。


1
无需重新启动kibana,只需删除并重新添加索引
Bizmate

3

我可能遇到了同样的问题-我在信息中心中看到了数据,但发现结果为0。转到管理>索引模式>刷新列表按钮(仅带有刷新图标的按钮)为我解决了该问题。


2

我遇到了同样的问题,@ tAn-的评论帮助我解决了这个问题。将日期字段更改为@timestamp可以解决问题。谢谢!

下一步应该是找出我的自定义日期字段有误。


1

我遇到了同样的问题,但是现在可以正常工作了。问题出在@timestamp。实际上,我已经上传了要elasticsearch使用的文件,logstash因此它会自动生成一个@timestamp字段。Kibana将时间范围与此@timestamp(即实际事件)进行比较。即使我在添加新的索引模式页面中取消选择“索引包含基于时间的事件”选项,kibana也会自动考虑@timestamp字段。kibana基于@timestamp字段为我工作。您还可以通过添加不带时间戳的索引模式进行检查,然后取消选择“索引包含基于时间的事件”选项。看看会发生什么..现在将没有任何时间范围选择选项kibana发现页面,您很可能会在发现页面中获得结果。这些都是我的观察结果,不确定,此解决方案适合您的情况..您可以尝试..我正在使用ES 1.5x,logstash 1.5.1和kibana 4.1.0


1

我也遇到了同样的错误。通常,这是由于时间格式而发生的。基本上,请确保您的数据具有有效的时间范围(右上方的过滤器)。无论如何,就我而言,我使用纪元时间格式作为时间戳,但是它不起作用。因此,我改为使用epoch_millisec,它像一种魅力一样工作。

总之,请确保Kibana可以理解您的日期时间格式。默认情况下,不仅是epoch ,还需要epoch_millisec


1

在我的情况下,以前一切正常,然后从2月1日开始我看不到最新数据(实际上,如果回首一个月,我可以看到)。事实证明,我的自定义时间字段的映射格式不正确。我的映射格式为YYYY-MM-DD'T'HH:mm:ss.SSSZ。问题是,这DD被解释为一年中的某天,而我想要的是当月的某天dd。更改映射和重新索引可解决此问题。


0

我遇到了同样的问题,因此,如上述解决方案之一所示,我转到设置并删除了先前的索引,并使用@timestamp创建了新索引。

但这并不能解决问题。因此,我调查了一下问题,发现部署后没有任何东西进入Kibana。

因此,我进入服务器,发现索引已损坏。所以我只是在实例/服务器上停止了logstash和elasticsearch,然后重新启动了服务。Voila,它成功重启了服务,kibana又回来了。

为什么会发生?

可能有人突然停止了服务器,导致索引损坏。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.