Назначьте тип «дата» полю в преобразователе записей fluentd

#elasticsearch #kibana #fluent

Вопрос:

Привет, у меня есть настройка конфигурации fluentd для фильтрации журналов, отправляемых в ElasticSearch. У меня есть поле «ВРЕМЯ», которое создается из существующего поля, но отображается как тип «неизвестно» в эластичном поиске. Мне нравится делать его типа «дата», так как мне нужно его соответствующим образом отсортировать. Моя конфигурация:

 <filter docker>
  @type record_transformer
  enable_ruby true
  <record>
   TIME ${record["MESSAGE"].scan(/d -d -d  d :d :d .d /).last}
  </record>  
</filter>
 

Значение в СООБЩЕНИИ может быть примерно таким:

 2021-03-31 12:12:05.856 LOG     : Message <checked [abc]> 
 

Я извлекаю первую часть как ВРЕМЯ, которая отлично работает, за исключением того, что она имеет тип «неизвестно», когда отображается в эластичном поиске. Есть ли способ назначить этому полю тип «дата»? Спасибо.

Ответ №1:

Вы уже пробовали это

       auto_typecast true
 

вы можете поместить его в раздел «enable_ruby true» , например