Назад | Перейти на главную страницу

Как я могу разобрать поле msec nginx в logstash?

Я пытаюсь справиться с журнал доступа nginx в логсташе.

Чтобы получить точность в миллисекундах для своих временных меток, я использую $msec переменная. Это означает, что метки времени будут иметь вид 1430832725.814, где целая часть - это временная метка UNIX, а дробная часть - в миллисекундах. К сожалению, я не могу найти формат даты logstash который может анализировать временные метки UNIX.

Есть ли другой способ заставить nginx вести журнал с точностью до миллисекунды? Или способ заставить фильтр даты logstash анализировать временные метки UNIX?

во-первых, использование фильтра grok для сопоставления поля $ msec с полем вывода

grok {
 match => { "message" =>\[%{GREEDYDATA:unix_timestamp}\] 
}

затем используя другой фильтр даты, чтобы преобразовать его в поле @timestamp

  date {
     match => ["unix_timestamp", "UNIX"]
  }

Если вы хотите отобразить поля, отличные от @timestamp, обратитесь к Ссылка на Logstash

В UNIX литерал формата может обрабатывать дробные секунды, поэтому он сможет анализировать $msec поле.