我设置了elasticsearch和Kibana来索引我们的应用程序(错误)日志。问题是Kibana不会在“发现”标签中显示任何数据。
现状
http://elasticserver.com:9200/applogs/_search?q=*
会返回大量结果(请参阅下面有关单个查找记录的信息)applogs
索引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"
}
},
..和我在发现标签中看到的内容:
答案 0 :(得分:149)
对于有喜欢的问题的人:
更改右上角的时间范围。
默认情况下,它仅显示最近15分钟的数据 。
答案 1 :(得分:23)
我想把它作为评论,但不幸的是,我无法给出我的不足回购。正如@Ngeunpo建议的那样,这是在创建索引时向索引添加时间字段的方式:。如果您在创建索引时没有这样做,我建议您删除该索引并重新创建它。 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
}
}
}'
<强>更新强>
如果您使用的是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)
我有同样的问题,这对我有用:
时间序列的问题我确定也可能是一个问题,但如果“发现”标签中没有实际显示任何字段,那么您可能会遇到与原始记者相同的问题以及我所拥有的内容。
答案 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回来了。
为什么会发生这种情况?
有人可能突然停止了服务器,导致索引被破坏。