강좌
클라우드/리눅스에 관한 강좌입니다.
기타 분류

웹로그분석 내손으로 직접하기(AccessWatch)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.giftitle11.gif

 

icon04.gif1. 계정사용자의 웹로그분석이란?

웹호스팅서비스를 이용하시는 분들은 거의 대부분 SOHO족이거나 회사 및 협회등입니다.

그리고 개인이 하는 경우도 있으며, 이 경우에는 회사홈페이지를 대리제작 및 관리해주는 형식입니다.

어쨌든 홈페이지의 전반적인 것을 관리하고 분석하는 일은 웹마스터라는 직책을 가진분이 하게됩니다.

웹호스팅서비스 이용자들은 거의 대부분이 웹마스터라고 할 수 있습니다.

독자적인 도메인(예, manualand.co.kr)을 가지고 웹사이트를 관리하기 때문이죠.

그런데 여기서 웹마스터와 서버관리자는 구분이 되어야합니다.

서버관리자는 웹호스팅서버의 OS와 장비 및 어플리케이션소프트웨어(Application Software)에 관련된 일을 주로하며, 웹마스터는 웹사이트와 관련된 일 즉, 홈페이지제작 및 분석, 디자인등을 주로 담당하게 됩니다.

그래서 우리 웹호스팅이용자들은 서버관리자라기 보다는 웹마스터라고 해야할 것입니다.

어떤홈페이지는 굉장히 인기가 있어서 광고료로 굉장한 수입을 얻고 있는 경우도 있는 반면, 또다른 홈페이지는 굉장한 이벤트와 제작비용을 들였지만 네티즌들의 반응이 거의 없는 경우도 있습니다.

뭐가 잘못되었길래 이런 현상이 있는 것일까요?

웹사이트를 운영한다는 것은 단순하게 홈페이지만을 예쁘게 만들고 고급디자인으로 치장을 한다로 해서 무조건 인기있는 것 만은 아닙니다.

웹사이트관리자, 즉 웹마스터에게는 홈페이지의 운영전략이 필요합니다.

즉, 다시 말씀드려서 전체홈페이지를 어떤식으로 꾸려나갈 것인지 어떤페이지가 인기가 있고, 어떤페이지는 방문횟수가 전혀없다는 것을 한눈에 꿰뚫고 있어야 하며, 최근 유행하는 네티즌들의 감각도 익혀둬야합니다.

또한 앞으로 인기있을 주제, 테마등도 웹사이트에서 제공하고 있는 정보와 관련지어서 생각할 수 있어야합니다.

간단 명료하게 표현한다면 웹마스터는 자기가 관리하는 홈페이지의 여러페이지중 인기있는 페이지와 인기없는 페이지를 분석하여 전자의 경우에는 더욱 활성화 시킬방안을 생각해야하며, 후자의 경우에는 왜 방문자가 없는지에 대해서 분석하고 대책을 세워 방문자가 흘러 넘치도록 해야합니다.

이런 일들을 하는 가장 기초적인 것이 홈페이지의 접속정보로그를 기록하고 있는 로그파일이며 이 파일을 보기좋게 분석하여 방문건수 및 방문장소, 방문페이지등을 그래프등으로 보여주는 역할을 하는 것이 바로 웹사이트통계분석용 프로그램인 것입니다.

웹마스터는 홈페이지 접속로그파일(보통 access_log)과 웹사이트통계분석용 프로그램으로 분석된 내용을 기초로 하여 홈페이지의 운영을 하게되는 것입니다.

즉, 웹사이트접속통계를 하여 알 수 있는 정보들을 구체적으로 분석하여 보면 다음과 같습니다.


● 어디에서 방문했는가? ( IP Address 또는 Domain)

● 언제 방문했는가? (방문한 시간)

● 어떤방법으로 방문을 했는가? (GET 또는 POST)

● 어떤 브라우즈로 사용했는가? (Netscape 또는 익스플로러)

● 어떤 페이지를 보고 갔는가?


이런 정보들은 자기가 관리하는 홈페이지 방문자들의 특성분석에 정말 알찬정보가 될 것입니다.

이런 분석을 해주는 프로그램이 이장에서 배우게 될 Accesswatch라는 프로그램인 것입니다.

그런데 웹호스팅업체에서는 이 프로그램을 설치해두고서 모든 작업을 한뒤에 결과만을 볼 수 있게해 놓은 곳이 거의 대부분입니다.

자기의 홈디렉토리 아래에 보면 대부분 logs라는 디렉토리나 wwwlog 또는 aw등의 이름을 가진 디렉토리가 있을 것입니다.

혹은 다른 이름을 가질 수도 있습니다.

어쨌든 이 디렉토리에는 이용자가 관리하는 홈페이지의 접속로그가 저장되는 access_log파일이 저장되어 있습니다.(에러로그파일(error_log)파일과 함께)

따라서 웹호스팅업체에서는 한달에 한번 이 파일들을 분석하여 가입자들이 웹등에서 그 결과를 확인할 수 있도록 제공하고 있습니다.

그런데 우리 가입자들은 이 프로그램을 직접설치하여 독자적으로 사용을 할 수도 있습니다.

그리고 가입자가 자기의 디렉토리에 직접설치를 하게되면 로그결과양식을 원하는 것으로 바꿀수도 있으며, 자기에게 맞게 환경설정을 하여 볼 수도 있습니다.

어떤 웹호스팅업체에 가입을 하더라고 자기가 관리하는 홈페이지의 접속통계분석은 직접할 수 있도록 하는 것이 웹마스터로서의 가장 현명한 자세라고 생각합니다.

따라서 분석작업하는 방법에 대한 것을 이제부터 설명하도록 하려합니다.

 

icon04.gif2. Accesswatch 다운받기

먼저 www.accesswatch.com으로 접속하여 "New version! Download AccessWatch version 2.02now." 라고 되어 있는 부분을 클릭합니다.

그럼 다음과 같이 다운로드 받기전에 간단한 입력사항이 나옵니다.

사이트에 관한 사항과 사용목적에 관한 것으로 하나라도 빠지면 다운로드 할수 없으므로 모두 기록하도록 하십시요.



awdown.gif



만약 아직 관리하고 있는 사이트가 없다면 2번째와 3번째는 모두 "none"으로 입력하시고 마지막의 " license agreement"에는 반드시 "yes"를 해주십시요.

그리고 맨 아래에 있는 " Download AccessWatch"라는 버튼을 클릭하면 다운을 받을 수 있습니다.

이제 다운받은 소스파일을 ftp를 이용해서 가입하신 웹호스팅서버의 자기계정으로 전송하도록 하십시요.

만약 이 작업을 웹호스팅가입자가 아닌 서버운용자라면 "/usr/local"이라는 디렉토리에 전송하기 바랍니다.

대부분 UNIX나 LINUX등에서는 응용 소프트웨어를 별도로 가져와 설치할 때는 대부분 "/usr/local"이라는 디렉토리 이하를 사용하는 것이 표준이므로 다운받은 파일을 이 디렉토리로 옮겨 놓도록 합니다.

하지만 우리는 웹호스팅서버의 일정공간을 임대하여 사용하는 가입자이므로 자기의 홈디렉토리에 전송을 하도록 합니다.

아래의 설정사항으로 설명을 할 것이므로 참조해 주십시오.

- 사용자의 ID : sspark

- 홈디렉토리 : /home/sspark

- 홈페이지디렉토리 : /home/sspark/public_html

- 도메인 : manualand.co.kr

따라서 다운받은 accesswatch소스(accesswatch-2_02_tar.gz)를 저장해야할 디렉토리는 홈페이지디렉토리입니다.

즉, /home/sspark/public_html로 전송을 하도록 하셔야합니다.

그런데 홈페이지디렉토리이름은 아파치웹서버를 사용할 경우에는 public_html이 일반적이나 다른이름을 사용할 수도 있습니다.

대부분의 웹호스팅가입자들은 홈페이지의 초기파일(index.html)이 어떤디렉토리에 저장되어야 하는지 잘알고 있을 것이므로 이 디렉토리에 저장하도록 하십시오.

즉, index.html파일이 있는 디렉토리에 저장하도록 하십시요.

icon04.gif3. accesswatch 설치하기

 

이제 accesswatch를 사용할 수있도록 설치를 해야합니다.

다운받은 파일은 압축된 파일이므로 풀어줘야하며 아래의 그림은 압축을 해제한 예를 든 것입니다.

uncompress.gif

 

이 명령어는 gzip으로 압축된 것을 풀게되면 tar로 묶여진 파일이 됩니다.

이 파일을 tar라는 명령어를 사용하여 다시 풀어준 것 입니다.

예와 같이 tar로 풀게되면 묶여진파일과 디렉토리들이 풀어지면서 새로생성이 되게됩니다.

예를 보시면 aw라는 디렉토리를 생성하고 있다는 것을 아실 것 입니다.

여기서 알수 있는 것은 aw라는 디렉토리에는 accesswatch라는 프로그램의 홈디렉토리가 될 것이며, 이의 절대경로는 /home/sspark/public_html/aw라는 것입니다.

즉 압축을 풀때에는 "gzip -d" 로 풀어준 다음 "tar xvf"로 풀어준 것이며, 이 두가지의 작업을 한꺼번에 하는 방법도 있으며 아래와 같습니다.

tar xvfz accesswatch-2_02_tar.gz

tar명령어에 z 옵션을 추가로 주게되면 gzip으로 압축된 것을 먼저 풀고 난 후에 tar로 묶여진 것을 풀어줍니다.

aw라는 디렉토리에 모두 압축해제되어 들어가게 되는데 이 디렉토리에 설치된 파일들에 대해서 간략히 살며보면 다음과 같습니다.

awdirlist.gif

aw-parser : 로그분석을 위한 파싱작업을 위한 스크립트

aw-report : 파싱된 내용을 html문서로 만들어 config파일에서 지정된 디렉토리에 저장해 주는 스크립트.

(예 $reportBase = "/home/sspark/public_html/aw/report")

cfg : 환경설정 파일을 저장하고 있는 디렉토리

report : 분석결과를 저장하기 위한 디렉토리(/home/sspark/public_html/aw/report)

 

icon04.gif4. accesswatch.cfg 환경설정하기

 

이제 이 파일로 웹사이트의 분석작업을 하기위해 환경설정을 해보도록 하겠습니다.

환경설정파일은 accesswatch.cfg라는 파일이며 이파일을 vi등의 에디터로 설정을 해줘야합니다.

이 파일이 존재하는 위치는 /home/sspark/public_html/aw/cfg/accesswatch.cfg가 됩니다.

다음의 설정예는 실제의 accesswatch.cfg를 알기쉽게 한글화하여 주석을 붙여놓은 것으로 설정파일의 설명은 주석으로 대신했습니다.

# AccessWatch 사용자 환경설정정보 파일 ###

# 이들 옵션에 대한 것들은 아래사이트를 참조한다.

# <URL:http://accesswatch.com/help/>

#

# 온라인 상(http://www.accesswatch.com/license/)에서 license등록을 할 수있으며

# AccessWatch를 사용하는 클라이언트 또는 도메인네임 각각을 등록해야 한다.

#

##########################################################

##### 사이트 정보 기록 #####

##########################################################

$accessLog = "/home/sspark/logs/access_log";

# 로그파일의 위치 정확히 파일이름(access_log)까지 정확히 지정해 주어야한다.

# 일반적으로는 /usr/local/lib/httpd/logs/access_log 또는

# /usr/local/apache/logs/access_log 이며

# 만약 모른다면 서버 관리자나에게 문의하거나 또는

# 다음의 명령어(find)로 확인을 할 수 있다.

# "$find / -name access_log -print"

#

$DNSlookups = 0;

# access_log에 hostname(도메인) 대신에 IP address가 기록되었다면 '1'로 셋팅한다.

$defaultPage = "index.html";

# 디렉토리만 지정했을때 찾게될 기본 문서를 지정한다.

$includeURL = ".*";

$compressdata = 1;

$compresscommand = "gzip -9fc";

$catcompresscommand = "gunzip -c";

$compresssuffix = "gz";

# gzip/gunzip이 시스템에 설치되어 있지 않다면 $compressdata = 0 로 설정한다.

# gzip이 path로 잡혀있지 않다면 절대경로로 명령을 지정해야 한다.

# 예를 든다면 eg "/usr/local/bin/gzip"

$excludeURL = ".gif|.jpg|.jpeg|.xbm";

# 분석하는 도중 count하지 않을 파일타입을 지정한다.

# 예를 들어 페이지 안에 있는 이미지파일(*.gif, *.jpg등)은

# 카운터에서 빼려고 할때 지정하는 옵션이다.

$reportBase = "/home/sspark/public_html/aw/report";

# 분석결과가 저장될 위치, 결과를 웹으로 보고자 할 때 이 디렉토리까지 지정해서 보게된다.

$siteName = "sitename(manualand)";

# "사이트 이름"으로 분석결과를 웹으로 보여줄 때 맨 왼쪽상단에 사이트이름을 보여주게 된다.

$siteBaseURL = "http://www.manualand.co.kr";

# 사이트의 기본 URL

$orgname = "orgname(MANUAL LAND)";

# "기관이름(회사이름)"으로 결과페이지에서 기관이름으로 사용하게 된다.

$orgdomain = "orgdomain(manualand.co.kr)";

# "기관 도메인"

$excludeHosts = "";

# access_log파일중 access된 것에서 제외할 호스트들을 나열한다.

##### 프로그램 옵션 #####

$maxPagesToList = -1; # sets the maximum number of entries in

$maxDomainsToList = -1; # the corresponding tables. Set to -1 to

$maxHostsToList = 15; # show all entries (may be *big*!), or

$maxRefsToList = 10; # 0 to hide the table completely.

$maxAgentsToList = 15;

# 분석결과에서 볼 수 있는 각 항목들의 최대 수치를 지정한다.

# 제한없이 모두 수용하려면 "-1"로 셋팅하고

# 해당 항목을 제외(숨김)하려면 "0"으로 셋팅한다.

$customFooter = <<EOM;

<!-- START custom footer -->

# 여기에는 각 페이지마다 보여줄 꼬릿말을 지정한다.

<!-- END custom footer -->

EOM

1;

###############################################################################

########### End - AccessWatch Custom Configuration #####################

###############################################################################

icon04.gif5. 접속통계분석 작업

accesswatch의 설치가 끝났으므로 이제 홈페이지의 접속통계분석작업을 해보도록 하겠습니다.

이 작업에 앞서서 반드시 확인해야할 것들이 있습니다.

즉 로그파일의 위치와 분석결과가 저장될 위치등에 관한 것이며, 거의 표준으로 사용하고 있는 것이므로 다음과 같이 가정을 하도록 하겠습니다.

 

- 홈페이지디렉토리 : /home/sspark/public_html/

- accesswatch의 홈디렉토리 : /home/sspark/public_html/aw/

- 접속로그파일의 저장위치 : /home/sspark/logs/access_log

- 분석결과가 저장될 디렉토리 : /home/sspark/public_html/aw/report/

 

환경설정을 맞게했다면 이제 본격적인 로그 분석작업을 해보겠습니다.

cron에 대해서 아시는 분이라면 이 작업은 system에서 cron으로 정기적으로 작업을 하게 해 두는 것이 좋으나 일단 여기서는 로그 분석작업을 어떻게 하는 것인가를 수작업으로 해보도록 하겠습니다.

작업에 앞서 aw-parser와 aw-report파일을 열어서 perl의 경로를 맞게 설정해 줘야 합니다.

Accesswatch 프로그램은 perl로 프로그램되어 있으며 시스템에 perl의 경로를 확인하여 aw-parser와 aw-report파일을 vi등으로 열어서 반드시 perl경로를 맞추어야만 에러없이 동작합니다.

만약 perl의 경로를 모른다면 다음과 같이 확인 할 수 있습니다.

perlpath.gif

대부분 perl의 경로는 /usr/bin/perl 또는 /usr/local/bin/perl 이렇게 되어 있으며 참고로 이런 방법 외에도 다음과 같은 방법으로 perl의 경로를 확인할 수 있다.

whereis perl

find / -name perl -print

이제 aw-parser파일과 aw-report파일을 열어서 첫 번째 행에 있는 perl의 실행경로를 수정해 주십시요. 이제 perl의 경로를 맞추었다며 parsing을 하고 그 다음 reporting을 하는 작업을 하면 됩니다. 다음의 두 명령으로 작업을 하십시요.

./aw-parser

./aw-report

이 작업에 대한 실제 작업은 다음과 같습니다.

실행순서는 parsing을 한 후에 reporting 순으로 실행되며 에러없이 진행되어 분석결과저장까지 끝났다면 대부분 다음과 같은 메시지를 보여줍니다.

parser-report.gif

 

이 작업을 할 때에 발생하는 대부분의 경우는 로그파일 즉, access_log파일의 위치를 정확하게 지정하지 못해서 발생합니다.

accesswatch.cfg를 열어서 로그파일이 위치하는 경로를 정확하게 지정해둬야합니다.

위의 예에서는 $accessLog = "/home/sspark/logs/access_log" 처럼 되어 있습니다.

대부분 웹호스팅업체에서는 홈페이지접속로그가 쌓일 디렉토리를 만들어 두고 있습니다.

이 디렉토리의 이름은 logs라는 이름이 보편적이며 wwwlog라는 이름의 디렉토리도 많이 사용됩니다.

만약 로그파일이 저장되어 있는 디렉토리를 모른다면 가입하신 업체에 문의를 해보시기 바랍니다.

그리고 이 디렉토리에 있는 로그파일의 이름을 확인하셔야합니다.

아파치웹서버를 사용하시게 되면 기본값으로 access_log라는 로그파일이름을 사용합니다.

하지만 다른이름을 사용할 수도 있으므로 업체에 문의를 해보시는 것이 좋겠습니다.

어쨌든 이 작업을 하기위해 기본적으로 확인해야하는 것은 다음과 같습니다.

 

- 로그파일의 위치 : /home/sspark/logs/access_log

- 분석결과가 저장될 위치 : /home/sspark/public_html/aw/report

- 실행파일의 위치 : /home/sspark/public_html/aw/aw-parser

/home/sspark/public_html/aw/aw-report

- aw-parser와 aw-report파일의 첫행에 있는 perl프로그램의 위치확인

 

이상의 설정에 이상이 없다면 분석작업을 하는데는 문제가 없을 것입니다.

분석작업이 끝났다면 이제 웹브라우즈로 분석결과를 확인해 보시기 바랍니다. 사용하시는 웹브라우즈를 실행시키고(물론 인터넷에 연결은 되어 있어야함) 아래 URL로 결과를 확인해 보십시오.

URL : http://www.manualand.co.kr/aw/report/ 또는

URL : http://www.manualand.co.kr/aw/report/index.html로 확인해 보시기 바랍니다.

icon04.gif6. 분석작업시의 다양한 옵션사용

로그분석의 기본적인 실행은 aw-parser와 aw-report이지만 다음과 같은 다양한 옵션을 사용하면 작업을 좀더 구체적으로 할 수가 있습니다. 즉, 지금까지 작업한 것은 옵션없이 가장 기본적인 방법으로 분석작업을 한 것이며 aw-parser 작업과 aw-report작업에는 다음과 같은 여러 가지 옵션이 있습니다. 이들 옵션을 알아두면 다양한 방법으로 작업을 할 수 있습니다.

accesswatch명령행 옵션

● -v 옵션 (Verbose mode)

Accesswatch로 로그분석하는 동안 작업내역을 보여준다.

예) aw-parser -v

aw-report -v

● -q 옵션 (Quiet mode)

특별한 메시지 없이 작업을 끝낸다. 작업내역을 보여주지 않는다.

예) aw-parser -q

aw-report -q

● -c 옵션 (Configuration file)

accesswatch.cfg 파일을 지정해서 작업할 수 있습니다.

예) aw-parser -c /home/sspark/aw/accesswatch.cfg

aw-report -c /home/sspark/aw/accesswatch.cfg

aw-parser에 대한 옵션

다음 옵션은 parsing작업에 대한 옵션이다.

● -l 옵션 (Access Log)

로그파일을 별도로 지정해서 작업할 수 있다.

예) aw-parser -l /home/sspark/public_html/logs/access_log

● -e 옵션 (Erase data files)

이미 분석되어 있는 통계들을 제거하고 분석결과를 새로 작성한다.

예) aw-parser -e


aw-report에 대한 옵션

다음은 보고서를 만들어 내는 작업에 대한 옵션이다.

● -o 옵션(Report path)

분석한 결과를 저장한 Report 디렉토리를 지정할 수 있다.

예) aw-report -o /home/sspark/public_html/aw/report

 

● -r 옵션(Report Range)

분석작업을 할 때 일정기간을 작업기간으로 정해 둘 수 있다. 즉, 분석에 포함할 시작시간과 마지막 시간까지를 지정한다.

기간지정형식 : YYYYMMDDHH-YYYYMMDDHH

예) aw-report -r 1999090100-19990910

추천옵션

로그파일의 위치를 지정해서 parsing작업을 하고 결과를 저장할 디렉토리를 지정해서 reporting 작업을 하는 것이 가장좋다. 즉, 다음과 같이 하면 로그파일의 위치와 Accesswatch 홈디렉토리, 그리고 결과가 저장될 위치가 같지 않아도 훌륭하게 운용할 수가 있다.

예)aw-parser -l /home/sspark/logs/access_log

aw-report -o /home/sspark/public_html/aw/report

icon04.gif7. 분석결과확인

이제 분석결과를 웹브라우즈로 확인해 보도록 하겠습니다. Accesswatch의 결과페이지들은 다음과 같은 6개의 항목으로 되어 있습니다. 각 항목들 사이는 "Previous Page"와 "Next Page"로 이동할 수 있으며 각 항목들을 클릭함으로써 볼 수도 있습니다.

Summary : 통계의 전체적인 요약

Pages : 각 페이지별 엑세스 건수와 통계

Domains : 도메인을 통해 국가별 방문정보

Hosts : 어디로부터 많이 들어왔나에 대한 건수와 통계

Hourly : 시간대별 접속건수를 막대그래프로 보여준다.

Days : 일별 접속건수를 막대그래프로 보여준다.





① Summary

결과를 확인하여 보면 설명드린바와 같이 각페이지위에 6개의 항목이 있습니다.

이페이지중 첫 번째 항목이 Summary이며 다음과 같은 정보를 제공합니다.

re_summary.gif


ⓐ 총 hit 건수

ⓑ 총 access 건수

ⓒ 각 방문자들이 본 평균 페이지 수

ⓓ 각 방문자들에게 다운로드 된 평균용량

ⓔ 전체 방문건수의 유일방문건수에 호스트들의 평균방문건수

ⓕ orgname에서 지정한 곳으로 부터의 방문건수

ⓖ 외부네트워크로부터의 방문건수

 

 

 

② Pages

두 번째는 그림에서 보는 바와 같이 Pages 항목에는 다음과 같은 정보들이 있습니다.


re_pages.gif

ⓐ 분석기간동안의 총 방문 호스트 수

ⓑ 각 호스트들이 본 평균 페이지 수

ⓒ 각 호스트들로 다운된 평균용량

ⓓ 각 페이지 위치에 대한 접속건수와 백분비

 

 

③ Domains


re_domains.gif

그림에서 보는 바와 같이 도메인이름 체계에서 1단계에 해당하는 도메인(com, org, net, kr, jp등)별로 통계건수를 보여줍니다.

 

 

④ Hosts


re_hosts.gif

Hosts 항목에서는 방문한 Hosts들의 IP Address와 hit수에 대한 정보를 보여줍니다.

 

 


⑤ Hourly


re_hourly.gif


ⓐ 시간대별 접속건수에 대한 막대그래프 정보

ⓑ 시간당 평균 Hit 수

ⓒ 시간당 최대 Hit 수

ⓓ 일평균 Hit 수

 

 

 

⑥ Days


re_days.gif

ⓐ 일별 접속건수에 대한 막대그래프 정보와 수치정보

ⓑ 일평균 Hit 수

ⓒ 일별 최고 Hit 수

ⓓ 일별 최저 Hit 수

 

이상으로 웹로그분석작업의 모든 설명을 마치겠습니다.

대부분의 웹호스팅업체에서는 이런 작업을 직접해주고 있으며 가입자는 단지 결과만을 확인하는 형식으로 서비스를 하고 있습니다.

하지만 자기가 웹마스터라고 자부한다면 이런정도의 작업은 혼자서도 할 수 있어야한다고 생각합니다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,787 개
  • 현재 접속자 :  265 명