Kibana没有在" Discover"中显示任何结果。标签

时间:2015-03-31 15:06:40

标签: elasticsearch kibana-4

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

现状

  • Elasticsearch启动并运行,响应API
  • 直接在Elasticsearch上执行查询,如http://elasticserver.com:9200/applogs/_search?q=*会返回大量结果(请参阅下面有关单个查找记录的信息)
  • Kibana已启动并正在运行,甚至可以找到Elasticsearch公布的applogs索引
  • Kibana还会显示applogs文档
  • 的正确属性和数据类型
  • “发现”标签不会显示任何结果......即使将时间段设置为几年......

任何想法?

以下是 Kibana如何看待applogs索引

enter image description here

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

{
_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"
 }
},

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

enter image description here

13 个答案:

答案 0 :(得分:149)

对于有喜欢的问题的人:

更改右上角的时间范围。

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

答案 1 :(得分:23)

我想把它作为评论,但不幸的是,我无法给出我的不足回购。正如@Ngeunpo建议的那样,这是在创建索引时向索引添加时间字段的方式:enter image description here。如果您在创建索引时没有这样做,我建议您删除该索引并重新创建它。 gif中的索引名称 logstash - * 类似于索引 applogs 。在这种情况下,字段 @timestamp 将添加为时间字段。如果有效,请告诉我。

编辑:图片提供:此wonderful ELK setup guide

答案 2 :(得分:8)

Kibana无法理解 timestamp 字段,如果格式不正确。时间戳,您可以通过点击时间字段名称来选择配置索引模式时,需要:

"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
    }
  }
}'

请参阅此question and answer

<强>更新

如果您使用的是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
    }
  }
}'

答案 3 :(得分:5)

sample image for ELK creating index or pattern

试试这个:取消选中“索引包含基于时间的事件”复选框 然后提供您的索引名称,然后选中“发现”它是否包含数据

答案 4 :(得分:4)

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

  1. 从“设置”标签中删除索引。
  2. 重启Kibana
  3. 然后在“设置”中重新添加
  4. 时间序列的问题我确定也可能是一个问题,但如果“发现”标签中没有实际显示任何字段,那么您可能会遇到与原始记者相同的问题以及我所拥有的内容。

答案 5 :(得分:2)

我有同样的问题,@ tAn-的评论帮我解决了。将日期字段更改为@timestamp就可以了。感谢名单!

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

答案 6 :(得分:2)

我可能遇到了同样的问题 - 我在仪表板中看到数据,但0表示发现。去经理&gt;指数模式&gt;刷新字段列表按钮(仅带有刷新图标的按钮)为我解决了这个问题。

答案 7 :(得分:1)

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

答案 8 :(得分:1)

与OP无关,但如果您的Kibana实例在尝试识别索引时崩溃(在设置&gt;指数下),请参阅https://github.com/elastic/kibana/issues/6419,这也为我解决了问题。

答案 9 :(得分:1)

我也遇到了同样的错误。 大多数情况下,这是因为时间格式。基本上,请确保您的数据具有有效的时间范围(右上角过滤器)。无论如何,在我的情况下,我使用了纪元时间格式的时间戳,但它没有工作。所以我改为 epoch_millisec 而且它就像一个魅力。

总之,请确保Kibana能够理解您的日期时间格式。默认情况下, epoch_millisec 不仅仅是纪元。

答案 10 :(得分:1)

在我的情况下,一切都在以前工作,然后我无法从2月1日开始看到最新数据(实际上,如果我回顾一个月,我可以)。事实证明,我的自定义时区的映射格式不正确。我的映射格式为YYYY-MM-DD'T'HH:mm:ss.SSSZ。问题是DD被解释为一年中的某一天,我希望每月的某一天是dd。更改映射和重建索引修复了问题。

答案 11 :(得分:1)

就我而言,我从服务器日志中设置时间。 并且时间与UTC不同(与UTC时间相比,日志的时间是未来) 所以,当我用几天/几个月/几年前的过滤器搜索日志时。没有日志,因为它是未来的时间。 所以,当我使用 Today 过滤器时。或与未来的时间。 它显示了日志。 之后,更改时区。已经解决了

答案 12 :(得分:0)

我有同样的问题,所以,正如上面的一个解决方案所示,我进入设置并删除了之前的索引并使用@timestamp创建了一个新的。

但这并没有解决问题。所以,我调查了这个问题,看到在部署之后,没有任何东西进入Kibana。

所以,我进入服务器,发现索引已损坏。所以我刚停止了实例/服务器上的logstash和elasticsearch并重新启动了服务。 而Voila,它成功地重新启动了服务,kibana回来了。

为什么会发生这种情况?

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