Webalizer는 아파치 서버의 로그를 자세한 통계로 보여주는 서버관리자에게는 상당히 유용한

툴이다. 물론 Webalizer 말고 다른 로그분석툴이 많지만 일단 Webalizer가 가장많이 쓰이고

윈도우용으로 Cygwin으로 컴파일되어서 제공되기 때문에 설치도 비교적 간단한 편이다.

(설치방법은 http://xens.dnip.net/54 참고) 설치만 해놓고 그냥 보기만 해서는 잘이해가 되지

않을것이다. 그래서 내 블로그의 6월분 로그내용을 가지고 분석하는 방법을 알아보겠다.

사용자 삽입 이미지

웹얼라이저를 실행하면 다음과 같이 접속 통계를 일단 간단히 볼수 있다. 항목별로 자세히 보자.

사용자 삽입 이미지
Hits : 서버로부터 요구된 파일들의 합계이다. 클라이언트들이 만약 그림 3개를 요구했다면 해당
          웹페이지까지 합해 4개의 Hits가 올라간다. 07년 06월 Daily Avg의 Hits를 보면 6077인데 이는
          하루에 일평균 6076개의 이미지가 (한페이지라고만 가정했을때) 요구되었다고 보면 되겠다.
          한페이지에 있던 이미지라고 가정했을때 이미지 3개가 하루동안 대략 2000명의 사용자에게
          요구되었다고 해석하면 편하겠다.(블로그 특성상 여러페이지에서 클라이언트들의 요청이
          있기때문에 쉽게 이렇게 가정한것이다.)

KBytes : 클라이언트들에게 전송된 웹페이지 정보량의 합계이다. 6월 25일까지 1,977,062Kbytes가
              요청되었다.

Visits : 방문객들의 총합이다. 하루평균 331명이 들어온다고 나와있지만 검색엔진 로봇들도 포함
             되었기 때문에 실제 방문객 수는 이것보다 적을것이다.

Pages : 방문객이 실제로 서버에 접속한 웹페이지의 합계이다. 만약 어떤 방문객이 내 블로그를
              방문해서 각각 3개의 이미지가 있는 5개의 페이지를 봤다면 Hits는 (방문객1+이미지수3)*
              웹페이지수5 로 계산이 되어 20이올라가게 된다. 그리고 방문객 1명이 와서 열람했으므로
              당연히 visits는 1이 올라가고 Page를 5개를 봤으므로 Pages는 5개가 올라간다.

여기까지는 대략적으로 알아본것이고 이제 6월분의 자세한 웹로그 통계를 살펴보겠다.

사용자 삽입 이미지

월별 통계와 응답 코드에 대한 히트수를 전체적으로 볼수 있다. 앞서 Hits나 Pages,visits 등이

어떻게 증가되는지 알아봤기 때문에 전체적인 내용을 판단하기에 쉬울것이다. 응답코드에 대한

히트수를 보면 대략 클라이언트들이 어느종류의 요청을 했는지 알수있다. 예를들어 이그림에서

404에러같은 경우 265 Hits가 발생했는데 총 265번의 없는페이지를 사용자가 접속하려 했다고

해석할수 있겠다. 이그림에서 보이는 히트수들은 내가 저질러 놓은것들이 상당히 많아서 별로

신뢰성이 없다.

사용자 삽입 이미지

일별통계를 그래프와 함께 볼수 있다. 아래는 짤려있지만 6월 25일까지 집계되있고 그래프를 보면

일별로 어느날이 접속자수가 많은지 쉽게 알수있고 어느날에 Hits나 다운로드량이 많았는지도 알수

있다. 여기서는 6월 9일에 접속자가 가장 많았고 페이지 검색은 6일에 가장 많은것을 볼수있다. 다운

로드량은 24일에 가장 많은것을 볼 수 있다. 그래프 아래에서는 일별로 자세한 데이터가 집계되어

있는것을 볼수있다.

사용자 삽입 이미지

시간별로 어느시간대에 접속이 가장많은지 적은지 쉽게 알아볼수 있는 통계도 있다. 여기서 보면

23~24시에 Hits수가 가장 많고 아침 7시에 가장 적은것을 볼 수 있다. Kbytes 통계로 어느시간대에

다운로드량이 가장 많은지도 알수있다.

사용자 삽입 이미지
Hits수를 기준으로 방문객이 본 내 서버의 페이지중에 가장 방문이 많은 상위 30개의 파일을 보여

주고 있다. 이는 어떤 페이지를 가장 많이 보았는지를 의미하는데 어느블로그던 개인홈페이지던

비슷하겠지만 root 디렉토리가 0순위이다. 이를 통해 블로그에서나 어떤 홈페이지에서 어떤 페이

지가 방문자들이 읽는 횟수가 많은지 판단해서 그와 관련된 내용을 더 많이 올려 방문자수를 높히는

전략(?)을 세울수도 있겠다.

사용자 삽입 이미지

Top 10 of ?? Total URLs by Kbytes : 데이터 전송량을 기준, 방문객들이 본 웹페이지중 가장
방문이 많은 상위 10개의 파일들을 보여준다. 여기서 보면 물론 root가 가장 많다. 그외 root를 읽어
들일때 따라서 읽히는 파일들 또한 전송량이 많다. 그외에는 그다지 전송량이 크지 않은것을 볼 수
있다.

Top 10 of ?? Total Entry Pages : 방문자가 처음으로 접속한 페이지의 랭킹을 상위 10위권으로 표시해준다. 여기서 보면 물론 root가 가장 많을것이고 다음은 rss피드 페이지가 많다. 물론 이것
으로도 어떤 페이지를 방문객들이 와서 많이 읽는지 대략 알 수 있다.

Top 10 of ?? Total Exit Pages : 방문자가 마지막으로 보고 나간 페이지의 상위 10위권 통계이다. 이것으로 어느 페이지가 방문객들에게 가장 인기가 없었는지 대략 알 수 있다. 하지만 이것만으로 섣불리 판단하기엔 부족하다. 필요한 정보만 다른 검색엔진에서 찾아서 보고 나갈수도 있기때문이다. 여기서 보면 root의 경우 Entry pages와 Exit pages가 동일한데 블로그 표시설정시 내가 한
페이지씩만 보여주도록 설정해놨기 때문인지 직접 내블로그 주소로 들어왔을때 방문객들이 다른 글을 읽는일이 아주 많지는 않다는것을 알수있다.

사용자 삽입 이미지

Hits수를 기준으로 어느곳에서 접속이 많이 이뤄졌는지 상위 30위권으로 표시된다. IP로 표시가

되는데 저두개의 IP는 구글 로봇이다. 첫번째는 내가 접속한 것인데 아무래도 글올리고 하다보면

내가 가장 접속이 많은건 당연하지 않을까 싶다. 구글 로봇이 얼마나 많이 접속하는지는 위에서

보면 알수있다. 내가 258번 접속하는데 구글 로봇이 두개만 합쳐도 198번이나 된다. 이것이 내가

호스팅 업체를 쓰지 않고 직접 서버를 돌려 블로그를 운영하는 이유중에 하나이다. 물론 검색엔진

에 자신의 블로그가 노출되는것은 좋은일이지만 다른파일도 봇들이 무차별로 순식간에 긁어가면서

트래픽을 크게 유발시키는 경우가 많다. robots.txt 파일에서 검색엔진 봇들이 한시간에 한번만

접속하게 해뒀는데도 많은 접속률을 보이고 있다.

사용자 삽입 이미지

전송량에 따른 상위 10위권의 순위를 보여준다. 이것도 IP로 표시되며 위에서 몇개의 IP들은 삭제해

놨지만 위의 두개의 봇들은 구글로봇들이다. 나머지 몇개의 IP들도 봇들이고 전송량이 꽤 된다.

그 아래는 Usernames에 따른 전송량,Hit수,방문수등을 보여준다. 그아래는 국가별 접속한 통계를

보여주는데 설정해놓은것이 없어서 한가지만 100%로 나온다. 윈도우용 Webalizer를 기본적으로

별다른 설정없이 설치했을때는 여기까지의 내용을 기본적으로 알아볼수가 있다. 물론 조작을

거쳐 레퍼러순위통계를 볼수도 있고 검색어 통계를 볼수도 있고 에이전트별(브라우저나 OS종류)

통계를 볼수도 있고 국가별 접속 통계를 볼수도 있다.
  • BlogIcon GraySk 2007.06.26 10:23

    뭔가 어렵내요 @_@

    • BlogIcon 박디 2007.06.26 21:32

      저도 이런거 쓰고나서 자주 완전 까먹을때 많아요. 내가 어떻게 했더라? 하는..ㅋㅋ 블로그에 이렇게 포스팅 해두면 다른 분들도 참고하고 저도 까먹었을때 제블로그 보고 다시 기억하고 하죠^^

  • BlogIcon nemo 2007.06.26 21:48

    Webalizer 여러 도메인 이름을 나누어 세팅하는거 아나요 ?
    도메인이 두개라면 각각 현황을 볼수 있게 하는 세팅요..
    webalizer.conf 와 crontab을 잘 하면 될거 같기도 한데 정답이 안떠오르네요..

    • BlogIcon 박디 2007.06.26 23:16

      crontab이라면..리눅스에서 쓰는것 말씀하시는거죠? 저는 rotatelog사용해서 로그를 치환하고 있거든요.잠깐 생각해보니 버츄얼호스트가 답이 될수있지 않을까요? vhost.conf에서 각 도메인마다 로그파일을 다른이름으로 일정량만큼 저장하게 해두고 webalizer.conf 에서 로그를 따로 읽게 하면 되지 않을까 싶은데.. webalizer.conf에서 그설정이 먹힐지 모르겠어요.

    • BlogIcon nemo 2007.06.26 23:40

      인터넷 찾아봐도 비스무리하게는 나오는데 페도라6에 딱 맞지 않아 모르겠네요..

    • BlogIcon 박디 2007.06.26 23:55

      지금 가상머신에서 webalizer 설치해보고 설정해보려구요. 해보고 나서 방명록에 한번 결과 알려드릴께요^^

  • BlogIcon nob 2007.06.27 00:16

    뭔가 있어 보입니다만 뭔가 어렵네요..

    • BlogIcon 박디 2007.06.27 00:42

      저도 얕은 지식이라.. 막 헷갈리기도 하고 까먹기도 잘까먹어요. 몇번했던건 안잊어먹었으면 좋겠네요..ㅋ

  • BlogIcon 종횡무진 2007.06.27 15:31

    옛날에 개인서버 구축할 때 책 뒤져가며 해 봤는데
    지금은 기억이 하나도 안나네요
    뭐가 뭔지 모르겠어요ㅠ.ㅠ

    • BlogIcon 박디 2007.06.27 18:50

      저도 전에 했던거 다까먹고 4월에 블로그 시작하면서 다시 이리저리 찾아보고 셋팅했죠..ㅋ

  • BlogIcon 밤하늘 2007.06.27 20:59

    박디님 저도 서버로 돌리고 있어요...^^;
    분석툴은 님과는 다른걸 쓰지만 거의 보지도 않게 되네요. 구글이나 다음 또는 twatch로 거의 보다보니...
    방문해 주셔서 댓글 써주신분들 블로그 순회중입니다...자 다음 손님!!!

    • BlogIcon 박디 2007.06.27 22:00

      바쁘시군요.ㅎㅎ 윈도우에서 서버 돌리다 보면 손이 너무 많이 가요. 저도 사실 웹로그 잘 안봐요 -0-

서버를 돌리다보면 아파치에서는 logs 디렉토리에 자동으로 access.log 와 error.log 파일을

저장하게 된다. 말그대로 access.log는 서버접속에 대한 외내부의 기록이고 error.log파일은

아파치 서버의 상태가 기록된 파일이다. error.log파일은 외부에서 만약 내 서버로 접속시에

파일을 찾을수 없었다면 IP와 그 상태도 기록하게 된다. error.log는 크기가 많이 커질일이 별로

없지만 요새는 검색사이트들의 로봇들이 웹페이지를 긁어가면서 못찾는 파일에 대한 에러가

꽤나 쌓인다. 어쨋든.. access.log 파일은 접속자 수가 많다면 순식간에 Mbyte 단위로 늘어나는데

이를 쌓아두면 로그분석도 쉽지 않을뿐더러 웹서버 성능도 떨어지게 된다. 때문에 일정 파일단위로

나눠서 로그파일을 저장할수 있는 방법(Rotatelogs.exe사용)과 로그를 분석할수 있는 webalizer

라는 프로그램 설치법에 대해 알아보겠다. 필자는 가상호스트를 사용중이기 때문에 이를 토대로

설명 하도록할것이다. 일단 webalizer 윈도우용 프로그램을 다운로드 받도록 하자.

Webalizer Homepage : http://www.webalizer.com/download.html

여기서 윈도우용(Win32)를 다운받도록 하자.

다됐으면 아파치가 설치되어있는 디렉토리 내의 conf 디렉토리로 가본다.

여기서 vhost.conf 파일을 볼수있다. (아파치 1.x 버전을 쓰고있다면 virtual/host.conf)

파일을 열고 수정을 한다.

(아래의 주소들은 예제입니다. 자신의 홈페이지 주소에 맞게 수정해주세요.)

<VirtualHost _default_:80>
 ErrorLog logs/park.example.com-error_log
 CustomLog "|C:/아파치가설치된경로/bin/rotatelogs.exe
 C:/아파치가설치된경로/logs/park.access_log_%Y 5M" common
 ServerName park.example.com
 DocumentRoot "C:/아파치가설치된경로/htdocs"
</VirtualHost>


이부분을 추가 및 수정을 한다. 위에서 5M은 용량을 말하는 것으로 access 로그파일이 5Mb가

넘으면 치환해준다. (rotatelogs.exe 뒷부분에 한칸띄고 servername 전부분까지 붙혀쓴다.)

%Y 부분은 해당년도를 자동으로 로그파일 이름 맨뒷부분에 더해서 저장해준다. 필요없다면

%Y부분은 빼버려도 무방하다. 저장후 문법에러가 있는지 확인하자.

확인방법 : 시작->실행->cmd 입력->커맨드 창에서 c:\아파치가설치된경로\bin\apache -S
               라고 치면 이상이 없다면 Syntax OK 라는 구문이 뜬다. 에러가 생겼다면 다시한번
               살펴본다.

Webalizer 설치전 아파치 서버를 재시동 하자.

두번째로..Webalizer(로그분석기)를 설치하도록 하자.

예를들어 C:\아파치가설치된경로\webalizer 에 설치한다고 가정하자.
그럼 이곳에 그냥 압축을 풀어놓으면 된다.

그다음 이폴더내의 sample.conf 파일의 이름을 park.example.com.conf 로 고친다.
수정,저장후 파일을 편집기로 열어서 아랫부분을 수정한다.

(원본)
#LogFile  /var/lib/httpd/logs/access_log
#OutputDir  /var/lib/httpd/htdocs/usage
#HistoryName  webalizer.hist
#Incremental  no
#IncrementalName webalizer.current
#HostName  localhost

(수정본)
LogFile   C:/아파치가설치된경로/logs/park.access_log_2007
OutputDir  C:/아파치가설치된경로/htdocs/weblog
HistoryName park.example.com
Incremental  yes
IncrementalName  park.current
HostName  park.example.com


위와 같이 수정하는데 Outputdir은 아파치가 설치된경로의 다큐멘트 디렉토리에 임의의 디렉토리

를 하나 만들어주고 저장하는것이 좋다. Incremental 옵션은 기본값이 No 인데  Yes로 해주면

vhost.conf 에서 5M가 넘으면 치환되서 없어져 버리는 로그파일을 따로 저장을 해준다.

sample.conf에서 수정한 Logfile명은 vhost.conf에서 수정한 Customlog의 파일명과 일치해야만

한다. 자..여기까지 다됐다면 거의 성공한 것인데.. Webalizer를 실행하기 전에 vhost.conf 파일이

제대로 설정되었는지 확인하자.

시작->실행 에서 cmd 를 입력하여 커맨드창을 실행시키고 아래와 같이 입력한다.

C:\Webalizer가 설치된경로\webalizer.exe -c
C:\Webalizer가 설치된경로\park.example.com.conf


(-c 에서 한칸띄우고 나머지 부분을 쭉 이어서 입력하면 된다.)

분석기는 아파치서버와 같이 실행되는것이 아니라 따로 실행해줘야 하기때문에 위와같이 일일히
항상 입력하기 싫다면 배치파일을 하나 만드는 것이 좋다.

사용자 삽입 이미지
다음과 같이 만들어놓으면 편하다. 실행이 됐다면 확인이 남았다.

위처럼 실행하고 나면 아까 webalizer에서 sample.conf 파일에서 설정한 outputDir에 지정된

디렉토리에 index.html 파일과 나머지 파일들이 생성되는데

여기예제에 따라 웹브라우저에서 실행한다면 http://park.example.com/weblog 를 입력하면

사용자 삽입 이미지

이와같은 화면을 볼수있다. 그전 기록에 대해서 이 분석기에서 어떻게 읽어들일수 있는지는 방법을

모르겠고 웹서버를 설치하려 한다면 이 강좌대로 web alizer도 함께 설치하면서 rotatelogs를 이용

한 로그파일 관리도 함께 한다면 좋겠다.

한가지 덧붙이자면 Webalizer 실행커맨드를 배치파일로 저장했던지 했다면 한번씩 실행을 해줘야

로그갱신이 된다. 이는 윈도우 내부의 스케쥴 예약 프로그램등으로 일정 시간대를 지정해놓고

실행해주는것도 좋은 방법이 될수 있겠다.