Logstash grok — журнал доступа Apache

#parsing #logstash #logstash-grok

#синтаксический анализ #logstash #logstash-grok

Вопрос:

Я хотел бы проанализировать свой журнал доступа apache, но я предполагаю, что в моем шаблоне grok что-то не так.

Следующие журналы — это то, что я хочу проанализировать.

  "message": "221.251.246.139 - - [14/Sep/2020:04:56:04  0000] "POST /services/api/agent/liveview_image_upload HTTP/1.1" 200 45 "-" "Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko" 6019 234 1618 "-""
  

И вот что я анализировал, используя это сообщение.

 %{IPORHOST:clientip} %{USER:ident} %{USER:auth} [%{HTTPDATE:timestamp}] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})) %{NUMBER:response} (?:%{NUMBER:bytes})
  

Согласно моему процессу синтаксического анализа, он может анализировать до «-«. Я хочу проанализировать остальные мои сообщения.

Как я могу проанализировать остальное? И правильно ли то, что я сделал до сих пор?

Комментарии:

1. Вместо этого вы можете использовать %{HTTPD_COMMONLOG} шаблон. Вы можете увидеть, к чему это приводит здесь .

2. @baudsp Как я могу разбить его на детали, такие как синтаксический анализ, а не просто в целом, как %{COMBINEDAPACHELOG}?

3. Это %{IPORHOST:clientip} %{HTTPDUSER:ident} %{HTTPDUSER:auth} [%{HTTPDATE:timestamp}] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" (?:-|%{NUMBER:response}) (?:-|%{NUMBER:bytes}) ? (имейте в виду, это именно то, на что %{HTTPD_COMMONLOG} переводится)

4. @baudsp АХ, я понимаю. Я сделаю это на основе того, что вы мне сказали. Спасибо, что дали мне знать.