Необязательные поля Logstash в файле журнала
Я пытаюсь разобрать файл журнала с помощью grok
каждая строка файла журнала имеет поля, разделенные запятыми:
13,home,ABC,Get,,Private, Public,1.2.3 ecc...
Я использую матч, как это:
match => [ "message", "%{NUMBER:requestId},%{WORD:ServerHost},%{WORD:Service},
...
мой вопрос: Могу ли я разрешить необязательное поле?
Иногда некоторые из файлов могут быть пустыми ,,
есть ли шаблон, который соответствует строке, как это 2.3.5
?
(своего рода номер версии)
1 ответов
в его основе grok основан на регулярных выражениях, поэтому вы можете окружить шаблон ()?
чтобы сделать его необязательным, например (%{NUMBER:requestId})?,
Если нет шаблона grok, который соответствует вашим потребностям, вы всегда можете создать именованный добыча такой: (?<version>[\d\.]+)
что бы извлечь в версию, строку, которая имеет любое количество цифр и точек в ней.