웹 로그(Access log)

📌 시작하기 앞서

어떤 화면이 가장 많이 호출되었는지 확인하는 방법은 무엇이 있는지 알아봤다. 웹 서버만 있으면 문제에 대한 답을 찾을 수 있었다. 웹 로그(Access log)를 사용하면 어떤 화면이 많이 호출되었는지 알 수 있다. 따라서 이번 글은 웹 로그에 대해서 알아보려고 한다.

📌 웹 로그

일명 Access log라고도 불리며, 아파치나 Nginx, iPlanet과 같은 모든 웹 서버에 공통적으로 제공되는 기능이다. 서버에 어떤 사용자가 어떤 요청을 했는지, 결과는 어떤지 파일에 한 줄씩 쌓을 수 있다. 모든 요청에 대해 로그를 쌓기 때문에 매우 많은 용량을 차지할 수 있다. 한 화면을 구성하기 위해 이미지나 CSS, 자바스크립트 등 모든 파일에 대한 요청의 결과가 로그로 남기 때문이다.

사용 예시

로그 포맷은 표준 포맷이므로, 어떤 웹 서버를 사용하더라도 대부분 동일하다.
[빨간색] 옵션
[파란색] 예시

'%D', '%T' 옵션

주의할 점은 로그 포맷은 대소문자를 정확히 구분해야 한다.
초 > 밀리초(1/1,000초) > 마이크로초(1/1,000,000초) > 나노초(1/1,000,000,000초)
%D : 요청 처리 시간을 마이크로초 단위로 나타낸다.
%T : 요청 처리 시간을 초 단위로 나타낸다.
정확하게 분석하기 위해서는 %D 옵션을 이용하자.

사용자가 많으면 어떻게 관리할까?

사용자가 많은 서비스인 경우 하루에도 수십 기가의 로그가 쌓인다. 그러나 이러한 로그를 어떻게 관리할 수 있을지에 대해 궁금증이 생겼다. 역시 이런 경우를 대비한 툴이 있었다.
Analog
AWStats
Webalizer
업데이트가 가장 최근까지 된 것은 AWStats이다. 이는 아래와 같은 기능을 제공한다.
방문 횟수 & 방문자 수
페이지에 머무른 기간 및 마지막 방문일
각 시간 및 요일별 방문 페이지 수 & 네트워크 사용량
방문자의 국가
가장 많이 본 페이지, 유입 경로 및 마지막 페이지
웹 압축 통계
사용 OS 및 브라우저 통계
방문 검색 로봇의 횟수
검색 엔진 및 검색 키워드
HTTP 에러 목록
즐겨찾기 북마크에 추가된 횟수
화면 크기

Google!

웹 로그를 통해 분석하지 않고, Google 애널리틱스를 이용해도 분석이 가능하다. 그러나 다른 점은 자바 스크립트 코드를 넣은 후에, 구글 서버로 정보를 전달하기 때문에 정보가 유출될 우려가 있다. (이것을 방지하기 위한 툴은 Piwik가 있다)

📌 적용점

웹 로그를 쌓아보고, 이를 데이터로 활용해보면 좋을 것 같다. 위에서 언급한 툴 외에 다양한 툴이 있기 때문에 장단점을 파악하고, 나의 서비스에 맞는 툴을 사용해봐야겠다.
TOP