설치가 그리 어렵지 않아서(--;) 문서를 만들지 않았는데 설치/설정에 대한 문의가 가끔 있어서 다시 정리한다. 이미 아파치로그 lotate(http://www.dbakorea.pe.kr/linux/apache_log_rotate.html)에 내용이 있긴하지만..
이 놈은 한글로 하자면 아파치로그분석기라고 칭하면 되겠다. 아파치라는 웹서버가 유명하고, 로그분석이 고객의 유형을 파악하는데 중요하므로 이런 로그분석툴들은 상당히 많다. 개인적으로는 이 놈이 가장 괜찮은 것 같다. 왜냐? 일단 스크립트(펄, ..)를 이용하는 다른 놈들보다 속도가 무쟈게 빠르다. 이거 서버 운영시 무지하게 중요한 부분이다. 로그분석하려고 몇시간 걸리고 이로인해 서비스상에 문제가 있다면 돌아오는 것은 관리자의 무능함...--;
<B>특징</B> C언어로 만들어져 빠르다(200Mhz펜티엄에서 초당 10000레코드 처리) common, combined 로그 포맷지원(combined를 사용하면 로그파일크기가 커지지만, 자세한 정보를 얻을 수 있다) 설정파일이나 커맨드라인을 이용하여 리포트를 커스터마이징 가능 한국어 지원 로그파일 크기제한 없고 부분적인 로그(일별,주별,월별..) 지원 소스 공개되어 있음
<B>설치</B> 2002년 4월 2일 현재 최신버전은 2.01-09이다. ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-09-src.tgz
root가 아니어도 설치할 수 있으나, 관리상 여기서는 그냥 root로 설치하자. configure시의 언어지정은 소스를 푼 하위디렉토리 lang에서 알 수 있다. 아래에서는 -with-preifx옵션을 사용하지 않았으므로 /usr/local이 디폴트값을 갖는다.
[pre-require] GD graphics library by Tom Boutell(http://www.boutell.com/gd/)
[root@ns /tmp]# tar xvzf webalizer-2.01-09-src.tgz -C /usr/local/src [root@ns /tmp]# cd /usr/local/src/webalizer-2.01-09/ [root@ns webalizer-2.01-09]# ./configure -with-language=korean [root@ns webalizer-2.01-09]# make [root@ns webalizer-2.01-09]# make install
<B>설정</B> /etc/webalizer.conf.sample로 설정예제 파일이 생긴다. 이를 /vhost/www/webalizer/webalizer.conf로 복사하여 설정하자. 이 작업은 일반유저인 dbakorea로 작업한다.
[dbakorea@ns www]$ cp /etc/webalizer.conf.sample webalizer/webalizer.conf
webalizer.conf에서 다음부분을 수정한다. 아파치로그는 combined 형태를 사용할 것이다. 로그파일은 cronolog를 이용하여 한달 간격으로 생성하게 할 것이므로 LogFile설정은 하지 않겠다. 그렇지 않은 사람은 다음과 같은 식으로 설정하면 된다.
LogFile /usr/local/apache/logs/access_log
[webalizer.conf] OutputDir /vhost/www/webalizer/output HistoryName webalizer.hist HostName www.dbakorea.pe.kr PageType htm* PageType cgi PageType php
설정파일에 주석이 달려있으므로 나머지 부분은 필요시 설정하기를 바란다. 실제 설정이 제대로 되었는지 쉘상에서 확인해 보자 아래와 같이 테스트해본다. 아파치로그파일은 /usr/local/apache/logs/dbakorea-access_200204이다.
[dbakorea@ns webalizer]$ /usr/local/bin/webalizer -c /vhost/www/webalizer/webalizer.conf > /usr/local/apache/logs/dbakorea-access_200204 Webalizer V2.01-09 (Linux 2.4.18) Korean 대상 로그 파일: /usr/local/apache/logs/dbakorea-access_200204 (clf) 출력 디렉토리: /vhost/www/webalizer/output 호스트명: 'www.dbakorea.pe.kr' 기존 히스토리 정보 해석: webalizer.hist 리포트 생성: April 2002 리포트 출력 히스토리 정보 저장 5782 레코드 동작시간 0.57 초
이제 모든 것이 제대로 돌아가므로 이를 crontab에 등록하여 하루에 한번씩 실행되도록 하자. 우선 아래와 같이 run_cron.sh라는 파일을 만든다. crontab의 등록은 그냥 쉘상에서 crontab을 실행하면 에디터가 실행되는데 58 23 * * * /vhost/www/bin/run_cron.sh 와 같이 입력하고 저장하고 빠져나오면(:wq로 vi와 같다. 사실 편집기로 vi가 실행되는 것이다.) 된다.
[dbakorea@ns webalizer]$ cat /vhost/www/bin/run_cron.sh #!/bin/sh /usr/local/bin/webalizer -c /vhost/www/webalizer/webalizer.conf /usr/local/apache/logs/dbakorea-access_`date +%Y%m`
[dbakorea@ns webalizer]$ crontab -l # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.14382 installed on Tue Apr 2 23:36:29 2002) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 58 23 * * * /vhost/www/bin/run_cron.sh
<B>[아파치 로그파일]</B> 나는 cronolog라는 프로그램으로 한달치마다 로그파일을 분리하여 생성했다. 이제 cronolog설치와 설정을 보자. 사실 너무 간단하다.
http://www.cronolog.org에 가서 프로그램을 받아오자 현재 최신버전은 1.6.2이다.
[root@ns /tmp]# tar xvzf cronolog-1.6.2.tar.gz -C /usr/local/src [root@ns cronolog-1.6.2]# ./configure [root@ns cronolog-1.6.2]# make [root@ns cronolog-1.6.2]# make install
이제 httpd.conf에 다음과 같이 CustomLog에 설정해주면 된다.
<VirtualHost *> ServerAdmin kang@dbakorea.pe.kr DocumentRoot /vhost/www ServerName www.dbakorea.pe.kr ServerAlias dbakorea.pe.kr ErrorLog /usr/local/apache/logs/dbakorea-error CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/dbakorea-access_%Y%m" ErrorDocument 404 /vhost/www/error.html </VirtualHost>
|
This article comes from dbakorea.pe.kr (Leave this line as is)
|