Linux,Unix,BSD/Apache, PHP

웹로그 분석툴 : webalizer

채윤아빠 2008. 3. 12. 10:46
728x90
반응형

0. webalizer 설치

# cd /usr/ports/www/webalizer/
# make WEBALIZER_LANG=korean install clean

1. webalizer 환경설정
# cd /usr/local/etc
# mkdir webalizer
# cp webalizer.conf-dist ./webalizer/test.conf
# cd webalizer
# vi test.conf
주석을 제거하고, 자신의 시스템에 맞게 설정 파일 수정. 대부분 아래의 설정만 변경하면 문제 없음
#LogFile        /var/lib/httpd/logs/access_log
#OutputDir      /var/lib/httpd/htdocs/usage
#HistoryName    webalizer.hist
#Incremental    no
#IncrementalName        webalizer.current
#HostName       localhost

2. 주기적인 웹 로그 분석
# crontab -l

# crontab -e
0 1 * * * /usr/local/bin/webalizer -c /usr/local/etc/webalizer/test.conf
이는 웹 로그 파일을 분할하지 않고, 동일한 파일에 계속 생성되도록 한 경우입니다.

아파치에서 rotatelogs 를 이용하여 로그를 하루 단위로 분할하여 만든 경우
다음 과정이 필요합니다.

2. test.conf 수정
#Incremental    no
위 부분을 yes로 수정

3. test.sh 작성
#! /bin/sh

set YESTERDAY = "`date -v-1d '+%Y%m%d'`"
rm -f /var/lib/httpd/logs/access_log
mv /var/lib/httpd/logs/access_log.$YESTERDAY \
        /var/lib/httpd/logs/access_log
/usr/local/bin/webalizer -c /usr/local/etc/webalizer/img-log.conf
위와 같이 스크립트를 작성하면, 웹로그를 분석한 이후에 로그 파일을 삭제합니다.
삭제하지 말아야 한다면, mv 대신에 ln 명령으로 링크 파일로하여 로그 파일을 보전할 수도 있습니다.
mv /var/lib/httpd/logs/access_log.$YESTERDAY \
        -s /var/lib/httpd/logs/access_log

4. 주기적인 웹 로그 분석 설정
# crontab -l

# crontab -e
0 1 * * * /usr/local/etc/webalizer/test.sh
위와 같이 설정하면 최근 하루전까지의 로그가 분석되어 기록되게 됩니다.