[apache] WebAlizer 사용하여 apache log 분석하기
apache log를 분석해서 통계를 내고 싶을때.. webalizer를 이용한다.
전에 좀 급하게.. 간단학 추출할 일이 있어서.. 그냥 쉘스크립트를 써서 접근이 많은 패이지를 찾은적이 있었는데.. (참조:apache log 분석(페이지별 접속수))
이걸 설치하면 좀 더 편할것아서.. 설치해봤다.
1. 설치는 yum으로 설치하니 간단하다.
[root@www ~]# yum install webalizer
2. conf 파일 수정
# vi /etc/webalizer.conf
해서.. 몇가지 수정/확인
LogFile /usr/local/apache/logs/access_log # <-- 분석할 apache log 파일 지정 (실행할때 지정할 수도 있다.) OutputDir /var/www/usage # <-- 결과 저장할 위치. 웹에서 보기 위해 나중에 httpd.conf 에서 수정해준다. Incremental yes # <-- apache_log 파일을 분석할때 기존 자료에 덧붙일껀지.. 현재 log file만 분석할건지 결정.(yes면 기존보존) IncrementalName /var/lib/webalizer/webalizer.current # <-- Incremental값이 yes일때 쓴다는데.. 그냥 기본값 그대로 썼다.
나머지는 그냥.. 그대로 놔뒀다.
3. apach 설정
# vi /usr/local/apache/log/httpd.conf
해서 다음 추가
Alias /usage "/var/www/usage" <Directory "/var/www/usage"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
혹시나 특정 IP에서만 보고싶다면.. 다음과 같이 한다.
Alias /usage "/var/www/usage" <Directory "/var/www/usage"> AllowOverride None Options None Order deny,allow Allow from 192.168 # <-- 여기에 접속하고 싶은 ip를 적는다. Deny from all # <-- 나머지는 모조리 막는다. </Directory>
apache 재시작 (httpd.conf를 적용시키기 위해 재시작한다.
[root@www ~]# /usr/local/apache/bin/apachectl restart
4. webalizer 실행
[root@www ~]# webalizer -c /etc/webalizer.conf
이렇게 하면 webalizer.conf에 지정한 Logfile을 분석한다.
특정 logfile 을 분석하고 싶다면.
[root@www ~]# webalizer -c /etc/webalizer.conf /usr/local/apache/logs/localhost-access.200907
위와 같이 logfiile명을 기록한다.
5. 그외…
apache log를 주기적으로 생성하고, 그와 함께 webalizer를 돌리는 쉘스크립트를 만든다음에..
그걸 crontab 에 걸어두면 괜찮을것 같은데.. 이건 담에 정리해서 추가하든지 하지 뭐.. (귀찮으면 안할 수도 있고..)