2014-08-27 2 views
0

У меня есть файл журнала, который имеет дату в следующем форматеLogstash Дата Фильтр

"respHdr":{"date":"Tue,%2008%20Jul%202014%2022:08:18%20GMT","expires":"Tue,%2008%20Jul%202014%2022:08:18%20GMT"} 

Как разобрать данный формат даты с помощью logstash Date фильтр?

+0

Можете ли вы объяснить свой смысл журнала? –

+0

Для этого вам нужно использовать фильтр grok. Что касается формата, вы можете использовать отладчик Grok (https://grokdebug.herokuapp.com/), чтобы узнать, работает ли ваш фильтр логсташа grok или нет. –

ответ

1

Похоже, ваш журнал в формате JSON со значениями URLEncoded в поле даты, поэтому первое, что вам нужно сделать, это добавить codec=>json к вашим input или json { source => message }.

После того, как у вас есть вещи, как события в Logstash, вы хотите, чтобы декодировать поля даты:

urldecode { field => 'respHdr.date' } 
urldecode { field => 'respHdr.expires' } 

И, наконец, разобрать даты в этих областях:

date { 
    target => '@timestamp' 
    match => [ 'respHdr.date', 'WHATEVER_FORMAT_THAT_DATE_IS' ] 
} 
date { 
    target => 'expires' 
    match => [ 'respHdr.expires', 'WHATEVER_FORMAT_THAT_DATE_IS' ] 
} 

Вы будете необходимо проконсультироваться с logstash date documentation, чтобы выяснить, какой формат такой даты.

+0

Большое спасибо Alcanzar –