Я пытаюсь сохранить старые файлы журналов в эластичном формате, и я использую для этого logstash.
отметки времени в журналах имеют следующий формат:
13 AUG 2015 | 07:04:35 | .......
1-я проблема заключалась в том, что месяц в верхнем регистре, поэтому я скопировал шаблон «МЕСЯЦ», как он появляется в шаблонах grok, и все это заключил в верхний регистр:
исходный МЕСЯЦ:
MONTH \b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\b
мой "MONTHCAP" в верхнем регистре:
MONTHCAP \b(?:JAN(?:UARY)?|FEB(?:RUARY)?|MAR(?:CH)?|APR(?:IL)?|MAY|JUN(?:E)?|JUL(?:Y)?|AUG(?:UST)?|SEP(?:TEMBER)?|OCT(?:OBER)?|NOV(?:EMBER)?|DEC(?:EMBER)?)\b
Следующее, что я пытаюсь сделать, это использовать фильтр даты, поэтому эластичный использует метку времени из журнала как @timestamp, а НЕ время строки, хранящейся в эластичном:
date{
match => ["MONTHDAY","dd","MONTHCAP","MMM","YEAR","yyyy","TIME","HH:mm:ss"]
}
Проблема в том, что я получаю следующую ошибку при попытке сохранить данные:
Error: Cannot register filter date plugin. The error reported is:
Illegal pattern component: O for pattern 'MONTHCAP'
дополнительная информация: это Grok-фильтр, который я использую для анализа строк журнала:
%{MONTHDAY} %{MONTHCAP} %{YEAR} \| %{TIME} \|
любая идея, почему я продолжаю получать эту ошибку, когда я использую шаблон «MMM»? Благодарность!