Webalizer
Webalizer는 웹로그 분석기이다.
그렇다면 웹로그는 무엇인가?
웹로그는 웹서버가 만든 기록이다.
무엇에 대해 기록해 놓은걸까?
웹서버에 접속한 사람들이 요청한 데이터와 그에 대한 응답같은 것들이다.
웹로그는 어떤 특정형태의 규칙을 가지며 저장된다.
그렇기에 Webalizer는 그 규칙을 이용해서 유용한 정보를 찾아내 분석할 수 있다.
Webalizer는 실시간으로 정보를 업데이트하는 것이아니라 사용자가 실행해야만 정보를 업데이트하게 된다.
불편하게 왜 실행해야만 작동을 하는 것일까?
그 이유는 아주 간단하다. log를 분석하는데 많은 시스템자원이 필요하기 때문이다.
간단히 말해 서버가 부담스러워한다.
로그는 작게는 수십메가에서 수기가(분할하지 않을 경우)에 이른다.
이런 경우 한번 분석하는데는 많은 시간과 자원이 소요된다.
그렇기 때문에 일반적으로 하루에 한번 사람들의 접속이 거의 없는 시간에 분석을 시킨다.
설치
요즘 리눅스 패키지에는 Webalizer가 같이 배포되는 경우가 많다.
따라서 이미 설치된 경우는 이단계를 넘어가도록 하자.
Redhat 계열의 리눅스 시스템이라면 다음과 같은 방법으로 설치유무를 확인할 수 있다.
# rpm -qi webalizer
설치되어 있지 않다면 설치할 소스를 다운받아오자.
http://webalizer.org에서 최신버전을 다운받을 수 있다.
ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz
(위는 2003년 7월 현재 가장 최신버전이다.)
파일을 다운받아 /usr/local/src 디렉토리에 저장을 한다.
설치는 root 권한으로 하여야 한다.
# cd /usr/local/src
# tar xvzf webalizer-2.01-10-src.tgz
# cd webalizer-2.01-10
이제 configure를 해보자. 기본적으로 언어설정만 해주면 된다.
지원되는 언어는 lang 디렉토리에 존재한다.
만약 이 디렉토리에 korean 파일이 없다면 위 사이트에서 language 파일을 얻을 수 있다.
[root@ezphp lang]# ls
webalizer_lang.catalan webalizer_lang.korean
webalizer_lang.chinese webalizer_lang.latvian
webalizer_lang.croatian webalizer_lang.malay
webalizer_lang.czech webalizer_lang.norwegian
webalizer_lang.danish webalizer_lang.polish
webalizer_lang.dutch webalizer_lang.portuguese
webalizer_lang.english webalizer_lang.portuguese_brazil
webalizer_lang.estonian webalizer_lang.romanian
webalizer_lang.finnish webalizer_lang.romanian-iso-8859-2
webalizer_lang.french webalizer_lang.russian
webalizer_lang.galician webalizer_lang.serbian
webalizer_lang.german webalizer_lang.simplified_chinese
webalizer_lang.greek webalizer_lang.slovak
webalizer_lang.hungarian webalizer_lang.slovene
webalizer_lang.icelandic webalizer_lang.spanish
webalizer_lang.indonesian webalizer_lang.swedish
webalizer_lang.italian webalizer_lang.turkish
webalizer_lang.japanese webalizer_lang.ukrainian
anguage를 추가하는 옵션은 --with-language 이다.
# ./configure --with-language=korean
configure가 에러없이 성공하였다면 컴파일을 해보자.
# make
# make install
설치는 아주 간단하게 되어버렸다.
설치에 많은줄을 할애하였지만 실제로 설치부분은 위의 세줄밖에 되지 않는다.
환경 설정
Webalizer가 에러없이 잘 설치되었다면 설정파일을 수정해주어야만 사용이 가능하다.
설정파일은 /etc/webalizer.conf 이다. 한번 찾아보시라~~~~. 분명히 없을것이다! :-)
그러나 우리에겐 /etc/webalizer.conf.sample 이 있다.
이 파일은 설치시에 생긴 파일이다. 이걸 보고 설정을 하라고 친절하게 sample을 만들어주었다.
그럼 파일을 한번 열어보자.
# cp /etc/webalizer.conf.sample /etc/webalizer.conf
# vi /etc/webalizer.conf
열었더니 참으로 심오한 말들이 많이 있는거 같다.
도대체 어느 부분의 주석을 풀어줘야 하는지 어딜 고쳐야 하는지 감도 안잡힌다.
걱정마시라~.
그래서 이런 문서가 있는 것 아니겠는가? :-)
설정파일중 수정할 부분
1. 분석할 로그 파일의 위치
웹서버의 로그파일 위치를 적어주면 된다. 기본적으로는 아래의 위치에 로그가 쌓인다.
LogFile /var/log/httpd/access_log
위 경로에 로그가 없으면 어떻게 해야할까?
만약에 아파치 웹서버를 이용하고 있다면 웹서버의 설정파일을 통해 위치를 알아낼 수 있다.
아파치 설치 디렉토리의 conf/http.conf 파일에 CustomLog 부분에 적혀있다.
2. 분석 결과를 저장할 디렉토리
OutputDir /var/www/html/usage
/var/www/html 은 웹페이지가 존재하는 디렉토리이다.
따라서 http://ezphp.net/usage 와 같은 방법으로 접근 가능하다.
3. 로그 히스토리 파일 지정
로그 분석한 날짜와 시간을 기록해 둔다.
HistoryName webalizer.hist
4. 분석이 안된 최근 로그만 분석한다.
Incremental yes
5. 이미 분석한 로그의 정보를 저장
IncrementalName webalizer.current
6. 보고서에 나타날 제목
ReportTitle 사용량 통계:
7. 사이트 명
HostName ezphp.net
이제 /etc/webalizer.conf 파일의 설정이 모두 끝났다.
REFERER 정보를 보고 싶다면 아파치 설정 파일을 수정해야만 한다.
Referer 정보란?
현재 페이지를 접속하기 이전에 있었던 페이지를 말한다.
즉 야후 검색을 통해 ezphp.net 에 접속을 하였다면 Referer는 야후의 페이지 정보를 가진다.
# vi /usr/local/apache/conf/httpd.conf
위의 디렉토리는 설치방법과 버전에 따라 다르다.
위에 없을 경우 다음과 같은 방법으로 찾아보길 바란다.
# find / | grep httpd.conf
파일을 찾아서 편집기로 열었다면 CustomLog를 검색해서 찾아가 보자.
vi 편집기를 사용한다면 /CustomLog 를 통해서 찾을 수 있다.
CustomLog /var/log/httpd/access_log common
일반적으로 위와 같이 되어 있을 것이다. 아래와 같이 수정한다.
CustomLog /var/log/httpd/access_log combined
아파치 설정 파일을 수정하였으니 아파치 서버를 재시작해야한다.
# apachectl restart
또는
#/etc/init.d/httpd restart
이제 모든 설정이 끝나고 로그 분석을 시키는 일만 남았다.
버추얼 호스팅을 하는 경우
버추얼 호스팅 도메인에 해당하는 webalizer.conf 파일을 생성해 주면 된다.
각도메인별 LogFile,OutputDir,HostName 이 세항목만 수정하여 새 파일로 저장한다.
예를들면 webalizer-www.ezphp.net.conf , webalizer-docs.ezphp.net.conf
Webalizer 실행
# /usr/local/bin/webalizer -c /etc/webalizer.conf
또는
# /usr/bin/webalizer -c /etc/webalizer.conf
위와 같은 방법으로 Webalizer를 실행 할 수 있다.
webalizer 파일의 위치는 위의 설치방법을 통해 했을 경우이고 일반적으로 /usr/bin 디렉토리에 존재한다.
버추얼 호스팅으로 설정 파일이 여러개일 경우엔 각각 실행해 주면된다.
# /usr/local/bin/webalizer -c /etc/webalizer-www.ezphp.net.conf
# /usr/local/bin/webalizer -c /etc/webalizer-docs.ezphp.net.conf
크론탭에 등록하기
매일같이 위처럼 Webalizer를 실행하는 것은 얼마나 번거로운일인지 모른다.
그것도 사람들이 접속하지 않는 한밤중에 하는 것은 올빼미족을 제외하곤 힘든일이다.:-)
크론탭을 이용해 지정시간에 한번 실행하도록 만들어보자.
# cat > /etc/cron.daily/webalizer
/usr/local/bin/webalizer -c /etc/webalizer.conf
Ctrl+z 를 눌러 저장하고 나오자.
실행할 수 있게 실행권한을 준다.
# chmod 755 /etc/cron.daily/webalizer
Posted by 홍반장