apache log analysis script ( sed, awk ) 아파치 Access Log 분석 스크립트
아파치 Access Log 분석 스크립트 목표 날짜 시각 URI 횟수 20160116 00 /MainAction.do?ActionName=RefreshSesseion 101 날짜 시각 IP 횟수 20160116 00 10.10.10.10 5 필요 데이터 이해(공백 기준 구분) 아래는 아파치의 기본 access.log 이다. 10.10.10.10 - - [05/Jan/2016:00:00:31 +0900] "GET /MainAction.do?ActionName=RefreshSesseion&fake=9779425681 HTTP/1. 200 13 다음은 AWK를 통하여 잘라내고자 하는 데이터이다.($1: 공백에 의해 구분되는 첫번째 컬럼) $1 IP 10.10.10.10 $4 시각 [ 16/Jan/2016:00 :00:31 $7 URI /MainAction.do?ActionName=RefreshSesseion &fake=9779425681 $9 응답코드 200 $10 응답데이터바이트 중간 목표 포맷 10.10.10.10 16/Jan/2016:00 /MainAction.do?ActionName=RefreshSesseion 200 수행절차 데이터 필터링 불필요한 데이터를 미리 제거한다.여기서는 테스트,모니터링용 주소 제외 사용자 호출 중심으로 필터링한다 여기서는 .do ( 각종 img등 제외) 주소 단순화 세부 파라메터는 제거한다.(.do?action=abc&data=b ==> .do?action=abc ) 데이터 단순화 및 저장 IP, 날짜시각, URI, 응답코드 날짜 시각 URI 횟수 저장한 파일 읽기 AWK 수행 배열구분자 지정 각 줄에 대하여 count[날짜시각,주소]++ 출력 연월일 시각 URI 횟수 해설 파이프 및 regexp를 사용한 필터링, awk를 사용한 테이블 구