我对Kibana很新,只是设置一个实例来查看一些ElasticSearch数据。
我在弹性搜索中有一个索引,它有一些字段,包括_timestamp。当我去发现'发现'选项卡并查看我的文档,每个都有_timestamp字段,但字段旁边有一个黄色警告,说明"此字段没有缓存映射"。结果,我似乎无法按时间排序/过滤。
当我尝试创建新的索引模式并单击"索引包含基于时间的事件"时,'时间字段名称'下拉列表不包含任何内容。
为了让Kibana识别_timestamp字段,我还需要做些什么吗?
我正在使用Kibana 4.0。
答案 0 :(得分:55)
您需要先执行以下快速步骤:
答案 1 :(得分:2)
在较新版本中,您需要在发送数据之前指定日期字段。
您的日期字段必须采用标准格式,例如Epoch(长号码)后的毫秒数或 - 正如MrE所建议的ISO8601。 在此处查看更多信息:https://www.elastic.co/guide/en/elasticsearch/reference/current/date.html
同样,在将数据发送到索引之前,必须指定此字段的映射。在python:
import requests
mapping = '{"mappings": {"your_index": {"properties": {"your_timestamp_field": { "type": "date" }}}}}'
requests.put('http://yourserver/your_index', data=mapping)
...
send_data()
答案 2 :(得分:2)
我的es版本是2.2.0
您必须使用正确的架构。 我关注guide 例如:
{
"memory": INT,
"geo.coordinates": "geo_point"
"@timestamp": "date"
}
ps:如果您的架构没有" date"字段,不要检查"索引 包含基于时间的事件
答案 3 :(得分:1)
从Kibana 2.0开始,已接受的答案已经过时
您应该在数据中使用简单的date
字段,并使用时间戳或ISO 8601格式的日期字符串显式设置。
https://en.wikipedia.org/wiki/ISO_8601
您还需要在开始显式发送数据之前将映射设置为日期。
curl -XPUT 'http://localhost:9200/myindex' -d '{
"mappings": {
"my_type": {
"properties": {
"date": {
"type": "date"
}
}
}
}
}'
答案 4 :(得分:0)
转到设置 - >指数,选择您的索引,然后点击黄色"刷新"图标。这将消除警告,并可能使您的可视化中的字段可用。