Windows 버전의 Webalizer와 AWStats 사용시 설정법입니다.

아파치 웹로그 분석툴인 Webalizer 또는 AWStats 사용시 GeoIP 데이터를 이용하여 도메인에 접속한 사용자의 국가를 대략적으로 유추해 볼 수 있습니다. 구버전의 Webalizer는 이 기능을 사용하기 위해 별도의 컴파일이 필요했으나 최신 버전의 Webalizer는 설정파일 수정만으로 쉽게 활성이 가능합니다. Webalizer는 2.21-02, AWStats는 6.95 버전을 기준으로 포스트를 작성하였습니다.

먼저 GeoIP를 이용하려면 Apache 로그 설정이 반드시 combined 형식으로 저장되어야 합니다. common 형식에는 아이피 정보가 기록되어 있지 않습니다. GeoIP 설정을 하기 전에 먼저 Apache의 설정을 아래와 같이 바꾸어 줍니다.

Apahce 설정파일 수정

CustomLog “logs/access.log” common 를 찾아 주석처리 합니다. (#삽입)

#CustomLog “logs/access.log” combined 를 찾아 주석해제 합니다. (#제거)

수정 후에는 Apache의 작동을 중지하고 반드시 기존 로그 파일을 삭제합니다. (기존의 로그에 combined 형식으로 덮어쓸 경우 분석툴에서 오류를 발생합니다.) 삭제 후에 Apache를 재시작합니다.

최신 GeoIP 데이터 파일은 MaxMind의 다운로드 페이지에서 받을 수 있습니다. 다운로드 후에는 적당한 곳에 압축 해제하고 경로를 기억합니다.

이제 사용하고 있는 분석툴에 맞게 설정파일을 수정하고 확인을 합니다. 각 스크린샷은 수정 후 국가 정보가 표시됨을 보여줍니다.

Webalizer 설정파일 수정

사용하고 있는 conf 파일을 열어 다음 내용을 찾아 수정하고 주석을 해제합니다.

1. GeoIP yes 주석을 해제하고 yes로 입력합니다.

2. GeoIPDatabase GeoIP.dat 파일의 경로 ex) c:/GeoIP/GeoIP.dat



AWStats 설정파일 수정

사용하고 있는 conf 파일을 열어 다음 내용을 찾아 수정하고 주석을 해제합니다.

LoadPlugin=”geoip GEOIP_STANDARD GeoIP.dat 파일의 경로 ex) c:/GeoIP/GeoIP.dat

만일 AWStats에서 작동이 제대로 되지 않을 경우에는 이 페이지를 참조하여 Perl API를 설치합니다. 커맨드창을 열어 ActivePerl이 설치된 디렉토리로 이동후 Installing on Windows 부분을 실행하면 됩니다.

Unknown으로 표시되는 아이피는 GeoIP 데이터 파일에 아이피 정보가 들어 있지 않기 때문입니다. 아이피 정보가 계속 추가되므로 GeoIP의 업데이트를 통해 좀 더 정확한 정보를 알 수 있습니다.

웹로그 분석툴로 널리 사용되는 Webalizer는 빠른 실행속도와 설정이 간편하다는 장점이 있지만 투박한 외관과 다소 불편한 인터페이스 그리고 무언가 아쉬운 분석 결과가 단점입니다. 그래서 이런 부족함을 채워줄 수 있는 또 다른 웹로그 분석툴인 AWStats의 설치와 설정에 대해 알아보겠습니다.[1] 포스트를 작성하고 있는 현재 최신버전인 6.95를 기준으로 설명하겠습니다. AWStats는 Windows 뿐만 아니라 거의 모든 운영체제를 지원합니다.

먼저 AWStats는 CGI를 이용하여 페이지를 보여주기 때문에 Perl을 설치하여야 합니다. Windows용 ActivePerl은 ActiveState 홈페이지에서  다운로드 받을 수 있습니다.  설치에는 별다른 어려움이 없습니다. ActivePerl의 설치 경로는 AWStats는 물론 기타 CGI 프로그램 사용시 입력을 해야 하므로 기억해 놓습니다.

포스트에서는 c:/perl 에 설치했다고 가정하겠습니다.

이제 Awstats를 설치합니다. 다운로드는 여기에서 받을 수 있습니다. Last Stable 버전의 Windows용인 exe 패키지를 다운로드 후 설치합니다. 설치 후에는 다음 내용에 따라 설정을 시작합니다.

포스트에서는 c:/AWStats 에 설치했다고 가정하겠습니다.

1. c:/AWStats/wwwroot/cgi-bin/awredir.pl을 열어 제일 첫 줄에 Perl 실행 파일의 경로를 입력합니다.

#!c:/perl/bin/perl.exe (#!는 삭제하지 않습니다. 절대경로를 입력하고 역슬래쉬가 아님을 주의합니다.)

2. 동일 디렉토리에 있는 awstats.model.conf 파일의 사본을 생성한 후 awstats.본인의 도메인.conf 로 파일명을 바꾸어 줍니다. (편의상 awstats.mydomain.com.conf 라 예를 들겠습니다.)

3.  awstats.mydomain.com.conf 파일을 텍스트 에디터로 열어 다음의 내용을 수정합니다.

LogFile=”분석하고자 하는 로그파일의 경로 ex) “c:/apache/logs/access.log

LogType=W 웹로그를 분석하므로 W로 입력합니다.

LogFormat=1 Apache 로그파일을 사용하므로 1로 입력합니다.

SiteDomain=”본인의 도메인 ex) “mydomain.com”

HostAliases=”같은 페이지를 연결하는 다른 도메인 없다면 SiteDomain에 입력한 도메인을 똑같이 입력합니다.

DirData=”결과가 저장될 디렉토리 ex) “c:/AWStats/data”

AllowToUpdateStatsFromBrowser=1 이 옵션을 0으로 지정하는 경우 AWStats 페이지에서 분석결과를 업데이트 할 수 없습니다. 실시간으로 분석이 되는 것이 아니기 때문에 편하게 업데이트 하기 위해서 이 옵션을 1로 바꾸어 줍니다.

AWStats의 설정이 완료되었으면 이제 Apache의 설정을 수정합니다. Apache의 설정파일인 httpd.conf 파일을 열어 다음 내용에 따라 설정합니다.

1. 로그 파일의 형식 변경

CustomLog “logs/access.log” common 를 찾아 주석처리 합니다. #CustomLog “logs/access.log” common 과 같이 첫머리에 #을 붙이면 됩니다.

#CustomLog “logs/access.log” combined 를 찾아 주석해제 합니다. #을 제거하면 됩니다.

2. AWStats 디렉토리 Alias 설정

아래의 내용을 httpd.conf 파일 제일 하단에 입력합니다. 여기서 c:/AWStats/ 는 본인이 AWStats를 설치한 디렉토리 경로를 입력합니다.

Alias /classes “c:/AWStats/wwwroot/classes/”
Alias /css “c:/AWStats/wwwroot/css/”
Alias /icon “c:/AWStats/wwwroot/icon/”
ScriptAlias /awstats/ “c:/AWStats/wwwroot/cgi-bin/”

<Directory “c:/AwStats/wwwroot/cgi-bin/”>
Options FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

마지막으로 Apache를 멈추고 기존의 로그 파일을 삭제한 후에 Apache를 재시작합니다.  그리고 웹브라우저 주소에 다음과 같이 입력하여 작동을 확인합니다.

http://mydomain.com/awstats/awstats.pl?config=awstats.mydomain.com.conf

작동이 확인되면 무분별한 접근을 막기 위해 디렉토리 접근을 제한 하는 것이 좋습니다. 이 포스트를 참조하여 c:/AWStats/wwwroot/cgi-bin/ 디렉토리를 접근 제한 합니다.

  1. 웹로그 분석툴이라고 소개하였지만 AWStsts는 웹로그 뿐만 아니라 FTP 로그, 스트리밍서버 로그 및 메일서버 로그의 분석도 지원합니다. [back]

Apache의 로그를 바탕으로 웹로그를 분석해 주는 여러 툴이 있지만 그 중 Webalizer는 빠른 속도와 간편한 설치로 널리 이용되고 있습니다. 이 포스트에서는 Windows 환경에서 Webalizer를 설치하고 사용하는 방법에 대해 알아보겠습니다. 포스트를 작성하는 현재 최신버전인 2.21-02 버전을 기준으로 작성하였습니다.

먼저 최신 버전의 Webalizer를 홈페이지에서 다운받습니다. Windows 버전은 Version 2.21-o2 for Windows 라고 기재되어 있습니다. 설치프로그램이 아니므로 본인이 원하는 곳에 압축을 해제합니다. 압축 해제된 디렉토리내에 있는 sample.conf 파일을 복사하여 적당한 파일명으로 파일을 생성합니다. www.mydomain.com.conf 형식으로 생성하면 편합니다.

그 후 생성된 conf 파일을 텍스트 에디터로 열어서 다음사항을 수정합니다. 그리고 반드시 #표시를 제거하여 주석처리를 해제합니다.

1. LogFile 분석하고 싶은 계정의 로그파일 경로 ex) c:/apache/logs/access.log

2. OutputDir 분석결과가 저장될 디렉토리입니다. 웹서버를 통해 확인할 수 있는 HTML 형식으로 저장되므로 웹에서 접속할 수 있는 경로, 즉 홈디렉토리등에 생성하는 것이 좋습니다. 또한 webalizer로 분석을 실행하기 전에 반드시 디렉토리가 존재해야 합니다. 설정한 디렉토리가 존재하지 않는다면 webalizer 실행 전에 생성하여 주십시오. ex) c:/apache/htdocs/webalizer

3. HistoryName 분석결과의 파일명을 지정합니다. 기본으로 입력되어 있는 설정을 그대로 사용해도 무방합니다만 주석은 반드시 해제하여야 합니다. ex) mydomain.hist

4. Incremental 분석 실행시 로그파일의 증분을 기존의 데이터와 합산할 것인지 결정하는 옵션입니다.  이 옵션을 no로 지정할 경우 로그파일이 재생성 되면 기존의 분석 결과가 모두 리셋되므로 반드시 yes로 지정합니다.

5. IncrementalName 로그파일의 증분을 합산할 때 사용할 파일명을 지정합니다.  기본으로 입력되어 있는 설정을 그대로 사용해도 무방합니다만 주석은 반드시 해제하여야 합니다. 또한 HistoryName과는 반드시 다르게 입력하여야 합니다. ex) mydomain.current

6. ReportTitle 분석결과의 페이지의 상단에 표시될 이름입니다. 본인이 식별하기 쉬운 이름으로 설정합니다.  ex) stats of www.mydomain.com

7. HostName 본인의 호스트명을 기재합니다. ex) www.mydomain.com

모든 설정을 완료하였으면 다음과 같이 커맨드창에서 webalizer를 실행하여 제대로 분석결과가 생성되는지 확인합니다.

webalizer.exe -c www.mydomain.com.conf

실행 완료 후에 OutputDir로 지정한 디렉토리를 확인하여 분석결과가 제대로 생성되어 있는지 확인합니다. 제대로 생성되어 있다면 마지막으로 웹으로 접속하여 확인합니다. ex) http://www.mydomain.com/webalizer

가상호스트 기능으로 여러 도메인을 운영하고 있다면 로그파일을 분리해 생성한 후 각각의 conf 파일을 생성하면 각 도메인별로 웹로그를 분석할 수 있습니다. 마지막으로 webalizer는 자동으로 실행이 안되므로 배치파일로 만들어 Windows 예약작업에 설정해 두면 분석결과를 좀 더 편하게 업데이트 할 수 있습니다.

분석 페이지의 접근을 제한하고 싶다면 이 포스트를 참고하시기 바랍니다.