2022년 10월 17일 월요일

데이터 노가다 실수담 - 4th

다음은 변수 영역 추출 후 url 디코딩 > 길이 측정 처리가 이어지는 아파치 웹로그 데이터 파이프라인. 
filter {
 grok {
  match => { "message" => "%{COMMONAPACHELOG}" }
 }

 if "?" in [request] {
  grok {
   match => { "request" => "(?<url>[^?]+)?(?<param>.*)" }
  }

  urldecode {
   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' 문자를 디코딩하면 '=' 문자로, 즉 세 글자가 한 글자로 바뀐다. 어쩐지 이상하더라(..)

댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스