ELK наиболее подходящее имя метки времени _ или @

Какое наиболее подходящее имя для временной метки при использовании Logstash для анализа журналов в Elasticsearch с последующей визуализацией с помощью Kibana?

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

date {
     match => [ "logtime", "yy-MM-dd HH:mm:ss" ]
}

Logstash автоматически помещает это в поле @timestamp. Kibana можно настроить на использование любого правильно отформатированного поля в качестве метки времени, но в Elasticsearch кажется правильным использовать _timestamp. Для этого вам нужно изменить и переименовать поле метки даты.

mutate {
     rename => { "@timestamp" => "_timestamp" }
}

Что немного раздражает.

Этот вопрос может быть полностью семантическим - но правильнее ли использовать _timestamp или вполне нормально использовать @timestamp? Есть ли какие-либо другие соображения, которые должны влиять на наименование поля метки времени?


person unclemeat    schedule 09.08.2016    source источник


Ответы (2)


Elasticsearch позволяет вам определять поля, начинающиеся со знака подчеркивания, однако Kibana (начиная с версии 4) будет отображать только поля, объявленные за пределами документа _source.

Вам определенно следует придерживаться @timestamp, который является стандартным способом именования поля метки времени в Logstash. Кибана не позволит вам использовать _timestamp.

person Val    schedule 09.08.2016

Обратите внимание, что _timestamp зарезервировано и устарело имя специального поля. На самом деле любые имена полей, начинающиеся с подчеркивания, зарезервированы для будущего внутреннего использования elasticsearch. Документация logstash AFAIK примеры используют @timestamp в качестве имени поля без каких-либо переименование.

person Konstantin V. Salikhov    schedule 09.08.2016