Apache 로그파일 관리 - Cronolog.exe
1. 설치 및 설정.
아래 명령어를 프롬프트 상태에서 실행하여 다운받자
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz (현재 최신버전은 1.6.2)
다운받은 파일 압축풀자!
tar xvfzp cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure --prefix=/usr/local/cronolog
make
make install
vi /etc/httpd/conf/httpd.conf
#
# For a single logfile with access, agent, and referer information
# (Combined Logfile Format), use the following directive:
#
CustomLog "|/usr/local/cronolog/sbin/cronolog /var/www/logs/%Y/%m/%d/access_log_www" combined env=!do_not_log
[root@kowww001 08]# pwd
/var/www/logs/2006/05/08
[root@kowww001 08]# ls
access_log_www
2. 설정 & 예제
설정: TransferLog "|/usr/local/sbin/cronolog /www/logs/%Y/%m/%d/access.log"
결과:
/www/logs/2001/01/01/access.log
/www/logs/2001/01/02/access.log
대문자 Y 를 소문자 y로 고쳤습니다.
설정: TransferLog "|/usr/local/sbin/cronolog /www/logs/%y/%m/%d/access.log"
결과:
/www/logs/01/01/01/access.log
/www/logs/01/01/02/access.log
%d를 지우면 월단위로 남깁니다.
설정: TransferLog "|/usr/local/sbin/cronolog /www/logs/%y/%m/access.log"
결과:
/www/logs/01/01/access.log
/www/logs/01/02/access.log
한 디렉토리에 저장하는거도 가능합니다.
설정: TransferLog "|/usr/local/sbin/cronolog /www/logs/access.%Y%m%d"
결과:
/www/logs/access.20010101
/www/logs/access.20010102
비슷한거
설정: TransferLog "|/usr/local/sbin/cronolog /www/logs/www%Y%m%d.log"
결과:
/www/logs/www20010101.log
/www/logs/www20010102.log
3. 이쁜로그 정보를 기록해 보자
위의 로그정보에서 이미지에 관한 로그정보가 없다.
이렇게 관리를 한다면 나중에 로그 정보 탐색시 가독성이 빨라질 수 있어 눈에 피로감이 덜하게 된다.
3-1.mod_setenvif 로 이미지 걸러내기
(단 apache 2.0 버젼 이상이에서는 기본적으로 설정되어있을 확률이 높습니다. 특히 RPM 설치했다면
이 단계를 신경쓰지 말고 다음 3-2 단계로 넘가도 좋다)
httpd 파일의 Compile modules 를 보십시요
[root@cronolog]# /usr/local/apache/bin/httpd -l
Compiled-in modules:
http_core.c
mod_so.c
suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec
위와 같이 나오면 됩니다
Apache Config 파일의 LoadModule 을 지정 하는 부분에 이걸 찾아보십시요
LoadModule action_module libexec/mod_actions.so
LoadModule userdir_module libexec/mod_userdir.so
LoadModule alias_module libexec/mod_alias.so
LoadModule access_module libexec/mod_access.so
LoadModule auth_module libexec/mod_auth.so
LoadModule setenvif_module libexec/mod_setenvif.so <===== 이녀석
있다면 가만 두시고 없다면 추가해 주십시요
Apache Config 파일의 AddModule 을 지정 하는 부분에서 이걸 찾아보십시요
AddModule mod_alias.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_so.c
AddModule mod_setenvif.c <===== 이녀석
AddModule mod_php4.c
있다면 가만 두시고 없다면 추가해 주십시요
3-2. SetEnvIf 이미지 파일 지정
SetEnvIf Request_URI (gif|png|jpg|css|js|bmp|jpeg)$ IMAGE=1
와 같은 부분을 CustomLog 를 실행하기 전에 지정한다.
3-3.ViirtualHost 설정 부분에서
CustomLog "|/usr/local/cronolog/sbin/cronolog /web/Log/access_%Y%m%d.log" common env=!IMAGE
와 같이 지정해 주시면 됩니다.

TRACKBACK ADDRESS
http://www.kaizer.co.kr/trackback/66
TRACKBACK RSS http://www.kaizer.co.kr/rss/trackback/66
TRACKBACK ATOM http://www.kaizer.co.kr/atom/trackback/66