다음은 변수 영역 추출 후 url 디코딩 > 길이 측정 처리가 이어지는 아파치 웹로그 파이프라인.
filter { grok { match => { "message" => "%{COMMONAPACHELOG}" } }
if "?" in [request] { grok { match => { "request" => "(?<url>[^?]+)?(?<param>.*)" } }
field => "param" }
ruby { code => 'event.set("param_len", event.get("param").length)' } }
date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] }}
변수 길이 변화는 다음과 같다.
다음은 url 디코딩과 길이 측정 순서를 바꾼 파이프라인.
filter { grok { match => { "message" => "%{COMMONAPACHELOG}" } }
if "?" in [request] { grok { match => { "request" => "(?<url>[^?]+)?(?<param>.*)" } }
ruby { code => 'event.set("param_len", event.get("param").length)' }
urldecode { field => "param" } }
date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] }}
변수 길이 변화는 다음과 같다.
url 인코딩된 '%3D' 문자를 디코딩하면 '=' 문자로, 즉 세 글자가 한 글자로 바뀐다. 어쩐지 이상하더라(..)
댓글 없음:
댓글 쓰기