Я пытаюсь разобрать сообщение журнала следующего типа:
111.22.333.444 - - [08/Jan/2020:11:50:15 +0100] [https://awdasfe.asfeaf.cas:111] "POST /VFQ3P/asfiheasfhe/v2/safiehjafe/check HTTP/1.1" 204 0 "-" "-" (rt=0.555 urt=0.555 uct=0.122 uht=0.11)
Мой файл журнала sh conf:
beats {
port => 5044
}
}
filter {
grok { match => { "message" => "%{IPORHOST:clientip} %{HTTPDUSER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \[%{NOTSPACE:referrer}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-)" } }
geoip { source => "clientip" }
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "my_index5"
}
}
I ' используя почти те же шаблоны, что и в библиотеке шаблонов github для COMMONAPACHELOG. Когда я помещаю код через отладчик grok в Kibana, он работает так, как я хочу, но когда я пытаюсь выполнить его на компьютере, logsta sh выдает ошибку, что перед символом "(?:% {WORD: verb) ожидается ожидаемый символ } часть, и когда я добавляю туда \, проблема все еще существует.
У кого-нибудь есть предложения по решению проблемы?
Заранее спасибо!