Logstash의 Apache 용 grok 필터 % {COMBINEDAPACHELOG}

Logstash에서 Elasticsearch로 로그를 보내 Kibana에 표시했지만 액세스 수가 변경되었습니다.

자세히 보기 Apache 액세스 로그용 grok 필터:


filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }

htps : // 기주 b. 이 m / hp kugen t / ぉ gs sh sh는 rs s / b b b / ms r / fu s / g 로 k pa rs s
에 따르면,
%{COMBINEDAPACHELOG} 의 내용은, 읽은 만마 combined 로그 포맷으로,
%{COMMONAPACHELOG} %{QS:referrer} %{QS:agent}
와 동등. 로그의 끝에 리퍼러와 Agent가 붙지 않은 행은 무시되어 버리는 것 같다.
%{COMMONAPACHELOG} 쪽의 내용은 이것:
%{IPORHOST:clientip} %{HTTPDUSER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-)
로그 예:123.45.78.9 - - [14/Nov/2018:00:00:04 +0900] "GET / HTTP/1.1" 200 18696
%{}의 순서와 로그를 비교해 봅시다.
오리지널 로그 출력으로 하고 있다면 그대로 조립하면 OK

Grok debugger



위의 상자에 로그를 붙여넣고 아래에 grok 패턴을 쓰면 무엇이 반환되는지를 표시해준다.%{COMMONAPACHELOG} 예:


리퍼러와 에이전트가 없으면 %{COMBINEDAPACHELOG}

리퍼러가 있는 줄은 OK:


여러 조건은 잘 읽지 않습니다 ...?

좋은 웹페이지 즐겨찾기