웹 접속 로그 추출 후 로그를 분석해 트래픽 사용 여부를 확인하는 방법을 오늘 익혀 기록형으로 남기려 합니다.
상황
서버 내 특정 사이트에 방문자도 별로 없고 로봇 접속도 별로 안보이는데 트래픽이 설정한 값 이상으로 초과되었다고 나와 로그 분석을 통한 트래픽 사용 여부를 확인해 보기로 했습니다. 다양한 방법이 가능 하겠지만 제가 오늘 배운 방법은 개인적인 용도이니 참고만 해주세요.
쉘에서 로그 분석 명령어
grep 도메인명 /var/log/httpd/access_log > log.txt
쉘에서 위와 같이 명령어를 주면 웹 접속 로그를 추출 할 수 있고 추출한 데이터로 어떤 접속이 트래픽 초과의 원인이였는지 분석 할 수 있습니다. 무조건 정답을 찿을 수 있는것은 아니지만 그래도 추측은 할 수 있습니다. 결론적으로 오늘 제가 찾은 것은 아마존 로봇이 원이였습니다.
위와 같이 명령을 주고 ftp로 접속해 위 경로에 가면 log.txt 파일이 있고 다운 받은 후 파일을 열어 봅니다. 아래 이미지처럼 정리가 안된 상태 입니다. 난감하죠 ㅠㅠ.
그래도 방법은 있습니다. 제가 사용하는 방법은 엑셀을 이용하는 것입니다. 분석해 보면 대부분 검색로봇 때문입니다. 국내 전용 사이트는 국내용 검색로봇만 들어오면 얼마나 좋겠습니까? 하지만 그게 맘같이 되나요? ㅋㅋ
엑셀로 로그 자료 다듬기
엑셀을 이용하면 아래와 같이 보기 좋게 정리가 되고 로그 분석하기 편합니다. 아래와 같은 방법으로 정리 할 수 있습니다.
데어터 > 텍스트 나누기 > 구분기호로 분리됨 선택 > 다음 > 탭, 공백 체크 > 다음 > 일반 선택 > 마침
원인은 아래와 같이 아마존 봇이였습니다. 그래서 아마존 봇을 robots.txt 파일에 추가해서 차단 했습니다.
- 참고: robots.txt 사용법
User-agent: Amazonbot
Disallow: /