질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

아파치로그분석툴(Webalizer, cronolog)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

아파치로그분석툴(Webalizer, cronolog)

 

t.gif
t.gif

설치가 그리 어렵지 않아서(--;) 문서를 만들지 않았는데 설치/설정에 대한 문의가 가끔 있어서 다시 정리한다.
이미 아파치로그 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)

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,139 명
  • 현재 강좌수 :  36,208 개
  • 현재 접속자 :  280 명