AWSTATS는 무료이면서 매우 강력한 로그 관리 프로그램이다.
이번 강좌는 이를 설치하고 활용하는 방법을 알려주겠다.

필자의 환경 :

System :
   Compaq SP 650,
        Pentium3 Xeon 866 Dual
        RDRAM 128 X 4
        U160 SCSI HDD 18 , 9, 2X2

OS :
   Windows2000
   Awstats 6.4(최신버전)
   Perl 5.8.4 build810

준비하기

먼저 독자의 해당 시스템에 perl 이 설치되어 있어야 한다.
그리고 IIS 로그 기록에 대한 설정을 변경해야 한다.
Perl 설치는 생략하고, IIS 로그 설정만 다루겠다.

IIS 서버 로그 형식 설정

IIS에 로그를 다음과 같은 정보가 기록되도록 설정을 한다.
개별 site에 해도 되지만 전체 site에 적용한다면, IIS 관리콘솔 root에서 마우스 오른쪽 버튼을 누르고, 등록정보를 누른다.

위와 같은 그림이 나오면 ‘마스터 속성’을 선택하고 ‘편집’ 버튼을 누른다.

그러면 site에 등록정보에 대한 기본 틀인 화면이 나온다. 아래 ‘활성 로그 형식’을 ‘W3C 확장 로그 파일 형식’으로 선택하고, 등록정보를 누른다.

위와 같은 ‘확장 로깅 등록정보’가 나오면 ‘확장 속성’ 탭을 선택하고 아래의 정보를 바탕으로 설정을 한다.

date
time
c-ip
cs-username
cs-method
cs-uri-stem
cs-uri-query
sc-status
sc-bytes
cs-version
cs(User-Agent)
cs(Referer)

설정을 다 했으면, ‘확인’을 누르고 모든 창을 닫는다.
설정된 로그 형식이 적용 되게 하기 위해, IIS서비스를 중지하고, 로그파일이 있는 곳에 가서 작업 시점 날짜의 로그의 이름을 바꾸고 IIS를 시작 시킨다. 그러면 작업 시점의 날짜를 기준으로 파일이름이 생성되면서 새로운 형식의 로그 파일이 생성된다. 로그파일을 열고 아래와 같은지 확인한다.

#Software: Microsoft Internet Information Services 5.0
#Version: 1.0
#Date: 2005-09-22 07:45:45
#Fields: date time c-ip cs-username cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs-version cs(User-Agent) cs(Referer)
2005-09-22 07:45:45 127.0.0.1 - GET /iisstart.asp - 302 0 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0) -

Awstats 설치하기

Awstats는 awstats.sourceforge.com 에서 다운 받을 수 있다. Zip 형식의 배포 버전을 다운 받아서 압축을 풀면 아래와 같은 폴더 구조를 가진다.

여기서 사용할 것은 wwwroot 폴더만 사용하게 된다.
awstats\wwwroot\cgi-bin 밑에 awstats.model.conf 라는 예제 환경 파일이 있다. 이 파일을 자신의 환경에 맞게 설정해야 한다.
먼저 awstat_configure.pl 파일을 awstats.[site_name].conf 등과 같이 설정할 site를 알 수 있게 이름을 변경한다.
반드시 awstat + . +[name] +.conf 로 변경해야 한다. [name]은 파일 갱신시 구분되는 것이므로 잘 기억하기 바란다.
노트패드로 열면 포맷 형식이 틀려 한 줄로 나오니, 텍스트 편집기를 이용하여 열기 바란다. 그러면 dos format으로 열겠느냐? 라고 물어볼 때 Yes를 누른다.

설정 파일의 내용이 길게… 나온다. 그중에서 아래 3개의 항목만 바꾼다. 두 번째 항목은 똑같이 쓰기 바란다. (포멧 형식을 지정하였으므로, IIS6.0에서도 사용 가능하다.)

LogFile="C:\WINNT\system32\LogFiles\W3SVC1\ex%YY-24%MM-24%DD-24.log"
LogFormat="%time2 %host %logname %method %url %query %code %bytesd %other %ua %referer"
SiteDomain="zigzeg.co.kr"

Awstat log 분석하기

설치 및 설정이 끝났으므로 이제 한 번 실행해서 로그파일을 html파일로 바꿔보자.
명령 형식은 다음과 같다.

→ perl awstats.pl ?config=[name] ?update

위와 같은 형식으로 실행을 하면 아래와 같은 성공적인 진행 과정이 보이고 변환이 완료된다.

주의 : 오늘 설정해서 오늘 변환은 안 된다. 변환은 어제의 로그 자료를 가지고 하기 때문이다.
이 로그 변환기는 실시간이 아니다. 이미 지난, 기록된 데이터를 변환하기에 오늘 설정하면, 내일, 밤 12시 가 넘어서 실행해 보기 바란다. TEST를 위해 생성된 로그파일을 어제 날짜로 복사해서 하면 TEST를 할 수 있다.

그리고 실행이 되면 환경 파일이 있는 곳에 변화된 파일에 대한 새로운 파일이 하나 생성된다.

그림에서 보듯이 awstats.092005.exchange.txt가 생겼다. 열어 보면, 알아 볼 수는 있지만, 잘 모를 것이다.
이제 웹에서 보자.
웹에서 보는 방법은 고정 html 파일로 보는 방법과, perl을 이용해서 asp 사용자와 대화하면서 볼 수 있는 두 가지 방법이 있다.
여기서는 후자를 설명하겠다. (전자는 사용하다 보면 매우 불편하다.)
일단 IIS에서 site를 만들던, virtual directory를 만들던 IIS가 이를 처리하게 해야 한다.
경로는 “awstats\wwwroot” 가 기본 경로이다.
여기서는 site를 만들겠다.
log.zigzeg.co.kr 이라는 경로로 사용하겠다.
IIS 설정은 생략하겠다.
URL을 다음과 같이 입력한다. (독자의 환경에 따라 다를 수 있다.)

→ http://log.zigzeg.co.kr/cgi-bin/awstats.pl?config=exchange
&nbps; http://FQDN/cgi-bin/awstats.pl?config=[sitename] 을 입력하면 된다.

그럼 변화된 로그가 보기 좋게 나올 것이다.

필자가 위에서 정적이 있고 유동 페이지 생성이 가능하다고 했고, 현재보여지는 것은 유동적이라고 했다.
윗쪽 가운데를 보면 년 월을 선택하는데 정적은 이게 없다. 달이 지나면 기존 것이 지원진다. 그러므로 자료의 저장이 안되고 그에 따르는 아래 그림처럼 다달이 나오는 통계가 없다.

이 그림은 필자가 운영중인 site의 9개월간 통계이다. 이전 강좌에서 3월경에 이 강좌를 준비 했으나 개인적인 사정으로 6개월 이상 늦어져서 이와 같이 양이 많은 통계가 만들어(?) 졌다.
플러그인을 추가하여 화면크기 통계라든가 IP별 지역을 낼 수 있으나, 화면 크기는 스크립트를 초기 화면에 넣어야 하고, 간혹가다 사용자 PC에서 PDF 보기 프로그램이 작동하는 오류와 초기화면 로딩에 지연이 생기고, 지역이라봤자 국내에 국한된 곳이 대부분이기 때문에 추가하지 않았다.
텍스트 편집기에서 찿기를 누르고 ‘# PLUGINS’ 이 검색어로 찾으면 1020 라인정도에서 플러그인 정보를 찾을 수 있을 것이다.
독자가 원하는 플러그인을 설치하기 바란다.

Tip : 자동화 갱신 및 보안 설정
1. Index.html 파일을 만들고 초기 파일로 정하고 해당 파일에 대한 링크를 걸어라.
  해당 site로 오면 이 링크를 통해 연결할 수 있다.
2. 배치 파일을 만들어서 매일 새벽 1시경에 갱신 작업을 하자. 사용자가 매일 매일 수작업을 하지 않아도 된다.
3. site에 대해서 기본 인증을 선택하고 anonymous 접근을 막자. site통계를 아무나 보여주기 싫을 것이다. 그러므로 이렇게 기본적인 로그인을 하고NTFS에 해당 파일에 대해서도 보안 설정을 한다.
4. 설정 파일의 템플릿을 만들고 추가되는 사이트에 대한 수작업을 최대한 줄이자.

결 론

위에서 살펴본 로그관리 프로그램은 무료이면서 매우 직관적이고 보기 쉽게 만들어졌다.
내용을 보면 not found 등은 관리자가 미쳐 발견하지 못한 연결이고, 이 프로그램은 그것을 쉽게 찾을 수 있고 수정할 수 있게 해준다. 다만 하루가 지나야 볼 수 있다는 단점이 있지만….
사용자의 패턴이나 여러 정보가 있으므로 이를 기반으로 사이트의 어느 부분을 보강하고 관리를 해야 하는지에 대한 유용한 정보를 제공해 줄것이다.
로그관리 프로그램을 구입하기 못하는 기업에서 이를 이용하면 매우 효과적인 로그관리가 될 것이다.

+ Recent posts