Метка времени не появляется в Kibana

Я довольно новичок в Kibana и просто создал экземпляр, чтобы посмотреть на некоторые данные ElasticSearch.

У меня есть один индекс в эластичном поиске, который имеет несколько полей, включая _timestamp. Когда я иду на вкладку " Discover "и смотрю на свои документы, у каждого есть поле _timestamp, но с желтым предупреждением рядом с полем"нет кэшированного сопоставления для этого поля". В результате я не могу сортировать / фильтровать по времени.

когда я пытаюсь создать новый шаблон индекса и нажмите на "Индекс содержит события, основанные на времени", раскрывающийся список "имя поля времени" ничего не содержит.

есть ли что-то еще, что мне нужно сделать, чтобы Кибана узнал поле _timestamp?

Я использую Kibana 4.0.

5 ответов


сначала вам нужно сделать следующие быстрые шаги:

  1. на Настройки → Дополнительно.
  2. редактировать метапол и добавить "_timestamp". Нажмите "Сохранить".
  3. Теперь вернемся к Настройки → Индексы и _timestamp будет доступен в раскрывающемся списке для "Time-field name".

Kibana 4 Advanced Settings metaFields


моя версия es-2.2.0

у вас есть правильная схема. Я следую за руководство Например:

 {
        "memory": INT,
        "geo.coordinates": "geo_point"
        "@timestamp": "date"
    }

Если у вас есть @ timestamp, вы увидите enter image description here

ps: Если в вашей схеме нет поля "дата", не проверяйте "индекс содержит события, основанные на времени


в более новых версиях необходимо указать поле даты перед отправкой данных.

ваше поле даты должно быть в стандартном формате, таком как миллисекунды после эпохи (длинное число) или - как предложено 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()

перейдите в Настройки - > индексы, выберите индекс и нажмите желтый значок "обновить". Это избавит вас от предупреждения и, возможно, сделает поле доступным в вашей визуализации.


принятый ответ устарел по состоянию на 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" 
        }
      }
    }
  }
}'