리눅스를 사용하고 있는 사용자 중, 많은 수의 사람들은 아파치 웹 서버를 사용하고 있을 것입니다. 이들 중에는 아파치를 공부하기 위해 사용하시는 분도 계실 것이고, 자신만의 웹서버를 운영하기 위해 사용하시는 분도 계실 것이고, 업무상 사용하시는 분도 계실 것입니다.
저를 포함해서 아파치를 사용하시는 분들이 공통적으로 궁금해 하는 것이 있습니다. 바로 방문정보입니다. 자신의 사이트에 얼마만큼의 방문객이 다녀갔고, 가장 많은 방문객이 엑세스 한 파일은 어떤 것이며, 어떤 검색 엔진에서 어떤 검색어를 사용해서 사이트를 알게 되었나 하는 등등의 것입니다.
이러한 궁금증을 해소하기 위해 아파치 웹 로그 분석 프로그램 중 하나인 Webalizer를 소개하고자 합니다.
Webalizer는 빠르고 강력한 웹 로그 분석 프로그램입니다. 아파치의 로그파일을 분석해서 그 결과를 html형태로 출력해 주기 때문에 매우 자세한 결과를 쉽게 확인 할 수 있습니다.
Webalizer 설치하기
다음 URL은 Webalizer를 다운로드 할 수 있는 Webalizer 홈페이지입니다.
http://www.mrunix.net/webalizer/
|
[Webalizer의 홈페이지]
Webalizer 홈페이지 외에도 ftp://ftp.oops.org 에서, 김정균님이 한글화 해서 패키징한 Webalizer를 받을 수 있습니다.
(와우리눅스 7.1 파란 버전도 Webalizer를 포함하고 있습니다.)
Webalizer의 설치를 위해 Webalizer를 다운로드 받아야 합니다. 필자는 김정균님이 한글화하신 webalizer를 다운로드 받았습니다.
ftp://ftp.oops.org/pub/Linux/Redhat/RPMS/7.2/webalizer/webalizer-2.01-3kr.i686.rpm
다음의 명령을 사용하여 Webalizer를 설치 합니다.
# rpm -Uvh webalizer-2.01-2kr.i686.rpm |
실행 환경 설정하기
설치를 마쳤다면 로그 분석을 하기 위해 Webalizer의 설정파일을 수정해야 합니다.
설정파일은 /etc/webalizer/webalizer.conf입니다.
김정균님이 한글화 하신 Webalizer를 설치했다면, 설정파일의 주석이 한글로 번역되어 있기 때문에, 설정하는데 어려움이 없을 것입니다. 한글화 되어 있지 않은 버전도 설정 방법은 동일 합니다.
여기서는 몇몇 중요한 항목들을 알아보겠습니다.
# 분석할 로그 파일의 위치를 나타냅니다.
LogFile /var/log/httpd/access_log |
# 로그파일을 분석한 보고서(html문서)를 저장할 디렉토리를 나타냅니다.
OutputDir /var/www/html/webalizer |
# 로그 타입을 설정합니다. clf는 기본적으로 web로그 분석을 합니다.
LogType clf |
# 로그 히스토리 파일을 지정합니다. 파일이름만 적었을 경우 Outputdir에 저장됩니다.
# 1년동안의 로그 분석 결과를 저장하고 있습니다.
HistoryName webalizer.hist |
# 이전의 모든 분석 결과를 저장해 놓은 후 분석 이후의 로그만 분석하도록 설정을 합니다.
# 서버의 부하를 줄일 수 있습니다.
Incremental yes |
# 이전에 분석해 놓은 결과에 대한 정보를 저장해 놓습니다. 위의 Incremental 옵션을 위한 정보를 가지고 있는 파일입니다.
IncrementalName webalizer.current |
# ReportTitle은 html 출력 화면에 표시될 Title입니다.
ReportTitle 사용량 통계: |
# 로그 분석을 한 사이트의 이름을 지정합니다.
HostName www.ibmmania.com |
이 정도의 설정으로도, 훌륭한 웹 로그 분석을 볼 수 있습니다.
Webalizer 실행하기
이제는 Webalizer를 실행시켜 보도록 하겠습니다.
Webalizer의 실행파일은 /usr/src/webalizer입니다.
# /usr/bin/webalizer -c /etc/webalizer/webalizer.conf |
위의 명령을 실행하면, 설정사항이 간단하게 나오면서 잠시 후 로그분석이 완료됩니다.
로그 분석이 완료된 후 결과는 웹 브라우저를 이용해서 확인 할 수 있습니다.
Webalizer의 설정파일에서 OutputDir 항목에 적어 주었던 디렉토리로 접속을 하면 리포트를 볼 수 있습니다.
필자의 경우에는 http://www.ibmmania.com/webalizer 가 되는 것입니다.
Webalizer는 로그를 실시간으로 분석해 주는 툴이 아닙니다. 그렇기 때문에 주기적으로 Webalizer를 실행시켜 줄 필요가 있습니다. 일반적으로 하루에 한 번 실행을 시켜 주면, 매일 매일 갱신된 리포트를 볼 수 있습니다. 방문자가 많은 사이트의 경우에는 로그 파일이 크기 때문에 이를 분석하는데에 시스템의 부하를 주게 됩니다. 그렇기 때문에 사용자가 적은 새벽 시간에 실행시켜 주면 되는 것입니다.
그렇다고 관리자가 잠도 안자고 새벽마다 Webalizer를 실행시킬 수는 없는 일입니다. 이때에는 cron을 이용하시면 아주 간편하게 해결 하실 수가 있습니다.
Webalizer를 rpm으로 설치 했을 경우, /etc/cron.daily 디렉토리 안에 webalizer라는 스크립트 파일이 생성됩니다. cron은 /etc/cron.daily 디렉토리 안에 있는 스크립트들을 하루 한 번 (보통 새벽 4시, 이 시간을 변경하기 위해서는 /etc/crontab 파일을 수정하면 됩니다.) 자동으로 실행시켜 줍니다.
/etc/cron.daily/webalizer logdir="/var/log/httpd" cp $logdir/$logfile $redir/$refile exit 0 |
위의 스트립트 파일에서 볼 수 있듯이, 일반적인 경우에는 수정을 하지 않아도 하루 한 번 Webalizer가 작동하도록 되어 있습니다.
Webalizer가 제공해 주는 정보는 다음과 같은 것들이 있습니다.
항 목 |
설 명 |
일별통계 |
방문자의 기록을 날자별로 알 수 있습니다. |
시간별 통계 |
방문자의 기록을 시간별로 알 수 있습니다. |
URL |
사이트의 내용 중, HIT수, 전송된 용량수별로의 순위를 알 수 있습니다. |
Entry |
방문자가 사이트의 내용 중 가장 먼저 접속된 페이지를 알 수 있습니다. |
Exit |
방문자가 마지막으로 머문 페이지를 알 수 있습니다. |
사이트 |
방문자가 접속한 곳을 알 수 있습니다. |
레퍼럴 |
방문자가 이 사이트에 접속하기 전에 있었던 곳을 알 수 있습니다. |
검색 |
검색엔진에 어떤 검색어를 사용했는지를 알 수 있습니다. |
에이전트 |
사용자의 운영체제와 웹 브라우저의 종류와 버전을 알 수 있습니다. |
국가 |
국가별 방문자를 알 수 있습니다. |
Webalizer를 사용해서 로그 분석을 했지만 레퍼럴 정보가 나오지 않는 분들이 계실 것입니다.
Webalizer는 아파치의 로그를 분석해 주는 툴이기 때문에 로그 파일에 없는 정보는 분석을 할 수 없습니다. 이럴 경우에는 아파치의 설정파일을 수정해서 로그 파일을 common방식이 아닌 combinded 방식으로 저장되도록 해 주시면 됩니다.
다음은 필자의 아파치 설정 파일인 httpd.conf 파일 중 일부입니다.
ServerAdmin edison@lvsp.or.kr |
버추얼 호스팅에서 로그 분석
또한, 하나의 서버에 여러개의 사이트가 버추얼 호스팅으로 운영되고 있는 경우에는, 세가지의 방법을 거치면 각 사이트별 로그 분석 리포트를 얻을 수 있습니다.
1. 아파치 설정 파일인 httpd.conf 파일을 수정하여, 각 사이트 별로 로그 파일이 저장되도록 해 줍니다.
ServerAdmin edison@netian.com ServerAdmin edison@hlug.hanyang.ac.kr |
2. webalizer.conf 파일을 사이별로 각각 만들어 줍니다.
별개의 여러 사이트를 분석하는 것이므로, 결과 보고서가 생성될 위치도 모두 달라야 하고, 이 때의 파일이름은 무관하지만 알아보기 쉽도록 webalizer.conf-ibmmania, webalizer.conf-edison 이런식으로 만들어 주면 됩니다.
3. 실행 스크립트를 사이트 별로 각각 만들어서 /etc/cron.daily 디렉토리 안에 넣어 줍니다. 이 때의 파일 이름은 무관하지만 알아 보기 쉽도록 작성해 주는 것이 좋습니다. 스트립트 작성 후에는 반드시 실행 퍼미션을 주어야 합니다.
지금까지 Webalizer를 실행하는 방법을 알아 보았습니다.
로그 분석 결과 보기
이제는 생성된 보고서를 살펴보는 일만 남았습니다.
웹 브라우저를 실행시킨 후, conf 파일에 지정을 해 준 출력 디렉토리를 입력해 주면, 상세한 보고서를 볼 수 있습니다. 예를 들어, conf파일에 /var/www/html/webalizer라고 적어 주었다면, 실제로 웹 브라우저에 http://www.ibmmania.com/webalizer 라고 적어 주면 보고서를 볼 수 있습니다. (단, http://www.ibmmania.com의 홈 디렉토리가 /var/www/html/이라는 가정입니다.)
다음은 실제로 Webalizer를 사용하여 로그 분석을 한 결과 화면입니다.
[최종 12개월에 대한 전체 로그]
[선택한 월에 대한 통계]