Know/WAS

[cronolog] Access Log 관리

Marine™ 2007. 4. 9. 03:03
반응형
cronolog 를 이용할 경우 access_log 의 날짜별 관리가 가능하다
access_log_041001
access_log_041002


1. 다운받기

http://cronolog.org/download/index.html 에 들어가서 cronolog-1.6.2.tar.gz 다운 받는다.
(2004년 10월 2일 현재 최신버전 cronolog-1.6.2.tar.gz)

2. 설치

./configure
make
make install

/usr/local/sbin/cronolog 에 설치된다.


3. 설정하기

httpd.conf 의 CustomLog 부분만 수정해 주면 된다.

예)

아래와 같이 심볼릭링크를 걸어주면 웹로그 분석시 편하다.

CustomLog "|/usr/local/sbin/cronolog --symlink=/home/httpd/logs/access_log /home/httpd/logs/accesslog/www_%y%m%d_access_log" common

4. 설정 예제들 (인터넷 펌)

설정: CustomLog "|/usr/local/sbin/cronolog /www/logs/%Y/%m/%d/access.log" common

결과:
/www/logs/2001/01/01/access.log
/www/logs/2001/01/02/access.log

대문자 Y 를 소문자 y로 고쳤습니다.

설정: CustomLog "|/usr/local/sbin/cronolog /www/logs/%y/%m/%d/access.log" common

결과:
/www/logs/01/01/01/access.log
/www/logs/01/01/02/access.log

%d를 지우면 월단위로 남깁니다.

설정: CustomLog "|/usr/local/sbin/cronolog /www/logs/%y/%m/access.log" common
결과:
/www/logs/01/01/access.log
/www/logs/01/02/access.log

한 디렉토리에 저장하는거도 가능합니다.

설정: CustomLog "|/usr/local/sbin/cronolog /www/logs/access.%Y%m%d" common
결과:

/www/logs/access.20010101
/www/logs/access.20010102

비슷한거

설정: CustomLog "|/usr/local/sbin/cronolog /www/logs/www%Y%m%d.log" common

결과:
/www/logs/www20010101.log
/www/logs/www20010102.log

access_log 로 심볼릭 링크를 걸수도 있습니다.
access_log에 심볼릭링크는 주기적으로 바뀌어서 지금 사용하는 로그파일이 됩니다.
CustomLog "|/usr/local/sbin/cronolog --symlink=/www/logs/access_log /www/logs/www%y%m%d.log" common
/www/logs/access_log -> /www/logs/www20010102.log
/www/logs/www20010101.log
/www/logs/www20010102.log

로그분석 프로그램에서 로그파일을 지정해야 하는 하는 경우에 (예,webalizer) access_log 를 지정하면 해당하는 날짜의 로그파일을 가리키겠죠...

5. 본격 활용 (인터넷 펌)

문제:
아파치로 웹사이트를 운영하고 있는데 로그 분석을 해서 방문자 현황을 보고 싶다.
그리고 지나간 로그 파일을 날짜별로 정리해서 압축해서 보관하고 싶다.

해결:
cronolog를 이용해 로그를 분할 저장합니다. 이때 심볼릭링크를 반드시 해야합니다.
CustomLog "|/usr/local/sbin/cronolog --symlink=/www/logs/access_log /www/logs/www%y%m%d.log" common

그러면 로그는 이렇게 저장됩니다.
/www/logs/access_log -> /www/logs/www20010102.log
/www/logs/www20010101.log
/www/logs/www20010102.log

Webalizer의 conf 파일에서 분석할 로그 파일을 /www/logs/access_log 로 지정합니다. 물론 history 보관 옵션을 on 해야 합니다.

crontab 파일을 열어 매일 23시 59분에 webzlizer를 실행하도록 세팅합니다.
성격이 급한 분은 매일/매시/59분으로 세팅해도 무방합니다.

매일 23시 59분에 cron에 의해 webalizer가 실행되며 access_log에 심볼릭링크 된 오늘자 아파치 로그를 분석하고 history에 저장합니다.

0시 0분이 되면 (새로운 접속이 있으면) 아파치(cronolog)는 새로운 날짜의 로그파일을 만들고 access_log 에는 새로운 파일을 링크걸게 됩니다.

다시 23시 59분이 되면 cron이 webzlizer를 실행시키고, access_log를 분석하는데 어제 날짜가 아닌 오늘 날짜의 파일을 분석합니다.

출처 : http://blog.empas.com/comengx/3859311
반응형