2019년 6월 2일 일요일

데이터 노가다 실수담 - 3rd

이번엔 응답코드별 접속 페이지 발생 추이. 그런데 200 응답코드 상태일 때 접속 페이지 유형이 너무 많다. 확장자 수준으로 범위를 좁혔는데도 301개?


뭐가 이리 많나 싶어서 리스트를 뽑아보니 확장자 뒤에 변수가 잔뜩 붙어 있다. 데이터 전처리 실패(..)


다음은 dissect 필터로 추출한 URI 필드를 다시 분류하는 grok 필터.
grok {
 match => {
  "uri" => "(?<uri_path>.*\/([^.?]*$)?)(?<file>[^?]*)\??(?<var>\S*)"
 }
}

grok {
 match => {
  "file" => ".*\.(?<ext>.*)"
 }
}

테스트 해보니 file 필드가 변수 영역에서 추출되는 경우가 있음.


정규표현식 테스트할 때 놓친 부분이 있구나. uri_path 필드 추출 시 종료 위치를 '/'로 정했는데 변수 영역에도 '/'가 쓰이는 바람에 망함.


'?'로 시작하는 변수 영역으로 넘어가지 않도록 정규표현식 수정.


이제 정상.


200 응답코드 상태일 때 접속 페이지의 폭증 현상도 사라졌다.


이러면서 데이터랑 친해지는 거지 뭐.
데이터를 여기 저기 뜯어 보고, 해체하고 조합하는 과정을 거치면서 '무엇'에 대한 정의를 할 수 있는 역량을 키운다

관련 글

댓글 없음:

댓글 쓰기

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