Analytics/Awstats2014. 8. 22. 00:39
반응형

 웹 로그를 분석해주는 서비스나 툴은 여러가지가 있지만 일반적으로 가장 많이 사용되는 것은 Google Analytics가 아닐가 생각된다. 개인적으로도 일정 규모 이하의 서비스엔 가장 합리적인 선택이 아닐가 생각된다. 하지만 서비스 규모가 증가함에 따라 혹은 웹 어플리케이션의 구조상 외부에 접속URL또는 레퍼러 등이 제공될 경우 해당 웹 어플리케이션의 보안을 담보할 수 없는 경우, 쿠키나 자바스크립트가 사용될 수 없는 경우엔 구축형 웹 로그 분석 툴이 필요하게 된다. 이경우 오픈소스로 선택 가능한 툴중에 하나가 Awstats이다. 물론 쿠키를 이용하지 않고 로그에만 의존해서 분석한다는 점 때문에 정확도에서 어느정도 차이를 보일 수 있겠지만 웹 로그 분석에서의 통계가 수치의 완벽함 보다는 일정한 흐름이나 경향을 파악하는데 있다고 한다면 어느정도 신뢰를 가지고 이용할 수 있는 소스가 되지 않을까 생각된다. 해서 Awstats사용법을 찾아보다보니 서버환경에서 실행하는 방법만 나와있는듯 하여 윈도우 로컬환경 로컬환경에서 커맨드 라인으로 실행하는 방법에 대해서 간단하게 정리해 보았다.



 Awstats는 구동에는 Perl이 필요하다. 이 예제에서는 윈도우 환경에서 간단하게 Perl을 이용할 수 있도록 해주는 ActivePerl을 인스톨 해보도록 하자. 다운로드는 아래의 링크를 참조하면 될듯합니다. 윈도우즈 플랫폼용 인스톨러로 제공되므로 간단히 다운받아서 인스톨할 수 있을 것이다.


http://www.activestate.com/activeperl/downloads

※Community Edition, Business Edition, Enterprise Edition이 있는듯하므로 라이센스에 유의하도록 하자.



 Awstats의 바이너리 파일은 아래의 공식 홈페이지에서 받을 수 있다. 7.0까지는 윈도우즈 플랫폼 인스톨러도 별도로 배포하고 있지만 7.1부터는 공식적으로는 별도로 배포하고 있지 않은듯 하니 참고하길 바란다. 2014년07월23일자로 배포된 7.3 버전이 이 글을 쓰고있는 시점에 최신 안정화 버전인듯 하다.(윈도우즈 인스톨러를 이용해서 인스톨하는 경우는 인스톨 진행중에 설정파일 생성이나 아파치 관련 설정에 관해서 묻는 프롬프트가 있는데 별도로 설정할 수 있으므로 일단 none이나 skip등으로 인스톨을 진행하면 무난히 인스톨 할 수 있다. )


http://www.awstats.org/

 ※아래의 스크린샷처럼 zip, tar, rpm패키지로 제공되는데 본 예제에서는 zip파일을 이용해서 설치하도록 한다.(tar의 경우 압축 형식만 다를뿐 내용은 동일하다.)
Awstats 다운로드 링크 스크린샷




Awstats 디렉토리 구조


  다운받은 awstats-7.3.zip파일을 압축 해제하면 우측과 같은 파일 및 디렉토리를 확인 할 수 있다. 압축을 해제한 디렉토리 하위에는 docs, tools, wwwroot의 세개의 디렉도리가 존재하며 docs하위에는 html형식의 메뉴얼, tools하위에는 로그파일을 병합한다든지 하는 유틸리티성 툴, 그리고 로그 분석툴은 wwwroot > cgi-bin 이하에 존재한다. 유틸리티 툴에 관해서는 별도로 알아보도록 하자.


 분석을 진행하기 위해서 분석할 로그에 대한 설정 파일이 필요하다. 직전에 설치한 경로에서 wwwroot > cgi-bin > awstats.model.conf파일이 존재하는데 이파일이 샘플 설정파일이다. 이파일을 복사해서 awstats.[프로젝트명].conf과 같이 적절한 이름으로 배치한다.






 설정파일을 오픈한 후 필수 항목을 아래와 같이 설정한다.

1. 분석할 로그 파일의 경로(7.3 샘플파일 기준 50라인)

LogFile="D:/work/test/access.log"



2. 분석할 로그 파일의 포맷을 설정한다.(7.3 샘플파일 기준 122라인)

# Examples for Apache combined logs (following two examples are equivalent):
# LogFormat = 1
# LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
#
# Example for IIS:
# LogFormat = 2
#
LogFormat=1


 디폴트로 지정되있는 로그 포맷을 아파치 combined 로그다. 위의 LogFormat=1부분의 값을 2로 변경하면 IIS의 포맷이 되는듯하다. 여기서는 Apache combined포맷의 로그파일이라고 가정하자.

※LogFormat의 값으로 위의 샘플의 주석부분처럼 포맷을 직접지정하는 것도 가능하다.



3. 분석할 로그 파일의 도메인을 설정한다.(7.3 샘플파일 기준 153라인)

SiteDomain="localhost"



4. 분석할 로그 파일의 호스트명을 설정한다.(7.3 샘플파일 기준 168라인)

HostAliases="localhost 127.0.0.1"


 위의 설정치를 host명별로 공백문자 구분으로 지정하면된다. 샘플 파일 내부의 디폴트 설정치인 REGEX[myserver\.com$]이부분은 myserver.com이라는 상위도메인을 정규표현으로 지정하므로서 하위 호스트를 포함하도록 지정할 수 있다.

※위에서 설정한 호스트명은 레퍼러 등에서 사이트 내부 이동인지 판단하는 부분등에 사용된다.



5. 아이콘 파일 디렉토리 상대경로로 변경(7.3 샘플파일 기준 222라인)

DirIcons="../icon"


 위의 설정은 결과 레포트 html상의 이미지 파일의 경로를 지정하는 부분인데 서버에서 동적으로 운용하는게 아니라 로컬에서 실행하는 경우를 고려하여 상대경로로 변경한다.

※서버로 동작하게 하는 경우에는 디폴트 치로 문제없으나 본 예제의 경우 로컬에서 실행하는 것을 상정하고 있으므로 수정






 설정을 마치고 나면 이제 실제 분석 단계이다. wwwroot > cgi-bin경로로 이동하여 아래 커맨드를  실행해보자.

awstats.pl -update -config=sample


※커맨드의 파라메터중 -config=sample의 sample은 윗부분에서 생성한 설정파일 awstats.[프로젝트명].conf의 [프로젝트명]에 해당한다.


 커맨드를 실행하면 아래와 같은 화면의 출력되면서 로그 분석이 진행된다.

Awstats 분석 진행 스크린 샷



 이제 생성한 분석 데이터를 바탕으로 html레포트를 생성해보자. 분석과 마찬가지로 wwwroot > cgi-bin경로로 이동하여 아래 커맨드를  실행해보자.

awstats.pl  -staticlinks -config=sample -output > awstats.sample.html
awstats.pl  -staticlinks -config=sample -output=alldomains >  awstats.sample.alldomains.html
awstats.pl  -staticlinks -config=sample -output=allhosts > awstats.sample.allhosts.html
awstats.pl  -staticlinks -config=sample -output=downloads > awstats.sample.downloads.html
awstats.pl  -staticlinks -config=sample -output=lasthosts > awstats.sample.lasthosts.html
awstats.pl  -staticlinks -config=sample -output=unknownip > awstats.sample.unknownip.html
awstats.pl  -staticlinks -config=sample -output=alllogins > awstats.sample.allrobots.html
awstats.pl  -staticlinks -config=sample -output=lastrobots > awstats.sample.lastrobots.html
awstats.pl  -staticlinks -config=sample -output=urldetail > awstats.sample.urldetail.html
awstats.pl  -staticlinks -config=sample -output=urlentry > awstats.sample.urlentry.html
awstats.pl  -staticlinks -config=sample -output=urlexit > awstats.sample.urlexit.html
awstats.pl  -staticlinks -config=sample -output=osdetail > awstats.sample.osdetail.html
awstats.pl  -staticlinks -config=sample -output=browserdetail > awstats.sample.browserdetail.html
awstats.pl  -staticlinks -config=sample -output=unknownbrowser > awstats.sample.unknownbrowser.html
awstats.pl  -staticlinks -config=sample -output=unknownos > awstats.sample.unknownos.html
awstats.pl  -staticlinks -config=sample -output=refererse > awstats.sample.refererse.html
awstats.pl  -staticlinks -config=sample -output=refererpages > awstats.sample.refererpages.html
awstats.pl  -staticlinks -config=sample -output=keyphrases > awstats.sample.keyphrases.html
awstats.pl  -staticlinks -config=sample -output=keywords > awstats.sample.keywords.html
awstats.pl  -staticlinks -config=sample -output=errors404 > awstats.sample.errors404.html
awstats.pl  -staticlinks -config=sample -output=allextraX > awstats.sample.allextraX.html



 위의 커맨드는 복잡해 보이지만 간단하게 설명해보면 -staticlinks 파라메터는 위에서 아이콘 설정이나 각종링크를 정적으로 생성하라는 의미이다. -output 파라메터는 지정한 카테고리의 분석을 생성하라는 의미이고 각각을 파일로 출력하도록 지정하였다. 커맨드를 실행한 디렉토리상에 html파일들이 생성된 것을 확인할 수 있을것이다. 이중 파일명이 가장 짧은 awstats.sample.html을 웹 브라우저로 열면 아래처럼 분석 레포트를 확인 할 수 있으며 페이지상의 하이퍼 링크를 이용하여 다른 파일로 이동할 수 있다.



 실제 운용하는 사이트에서 로컬로 분석이 필요한 경우는 그다지 많지 않겠지만 생성된 분석데이터를 다른곳에 제출할 경우등에 유용하게 쓸수 있지 않을가 생각된다. 또한 위의 설정치들은 최소한의 설정으로 실제로 분석한 결과의 정확도를 올리기 위해서는 좀더 상세한 설정이 필요할 수도 있으므로 별도로 알아보도록 하겠다.



Posted by Reiphiel