Skip to content

2008.12.14 14:02

apache log 정리

조회 수 13527 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
1) Apache 자체에서 제공하는 rotatelogs를 이용하여 로그를 시간과 용량에 따라
   분리 저장하는 방법
2) 보다 개선된 형태의 cronolog로 로그를 rotation하는 방법
3) images 로그와 윈도 OS 관련된 warm 로그를 별도로 저장하는 방법을 소개한다.


------------------------------------------------------------------------
1) weblog를 자동 rotation하기

로그를 관리하기 위해 logrotate 를 사용하는 경우가 많지만, 이는 서비스를 일시 중단해야
한다. 그러나 apache에서 제공하는 rotatelogs는 웹서버 동작중에 (1) 특정시간간격이나
(2) 특정 크기 단위로 로그를 저장한다.

예) CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access.log 86400" common

위는 웹서버를 실행한지 86400초(24시간)간격으로 로그파일을 나눠서 저장한다.
로그 파일명은 'access.log.????' 형식으로 ???? 는 로그파일 생성시의 timestamp 이다.

즉, access.log.1060189068,  access.log.1060120280 형태로 파일명이 만들어진다.
이런형태의 파일명이라면 이해하기 힘들 것이다. 좀더 쉽게 파일명을 만들어보자.

CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log.%m%d-%H%M%S 86400" common
또는
CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log.%m%d 86400" common

이제는 'access_log.월일-시분초' 또는 'access_log.월일' 형태로 생성될 것이다.

CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log.%m%d-%H%M%S 100M" common

100M 단위로 로그를 저장할 수도 있다.

2) cronolog 툴로 개선된 형태로 log rotation하기

cronolog는 년월일에 따라 다른 디렉토리에 로그를 남길 수도 있다.
또한 webalizer 같은 웹로그 분석툴은 access_log 와 같이 지정한 파일을 분석하는데,
access_log.년월일' 처럼 로그 파일이 매번 바뀐다면 로그파일 지정하는게 쉽지않다.
cronolog 는 심볼릭 링크를 통해 이를 쉽게 해결해주고 있다.

http://www.cronolog.org/ 에서 cronolog-x.y.z.tar.gz 을 받아

./configure
make
make install

을 한다.

사용은 rotatelogs와 비슷하다.

  (1) 년월 단위로 로테이션한다.

  CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/access_log.%Y%m" common

  년월로 나눠서 'access_log.년월'형식으로 저장을 한다.

  /usr/local/apache/logs/access_log.200307
  /usr/local/apache/logs/access_log.200308

  (2) 다음과 같이 년월에 따라 다른 디렉토리에 로그를 나눌 수도 있다.

  CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/%Y/%m/access_log.%Y%m%d" common

  /usr/local/apache/logs/2003/07/access_log.20030701
  /usr/local/apache/logs/2003/07/access_log.20030702
  /usr/local/apache/logs/2003/07/access_log.20030703
  ...
  /usr/local/apache/logs/2003/08/access_log.20030801

  (3) 로그파일을 access_log로 심볼릭 링크해보자

  CustomLog "|/usr/local/sbin/cronolog --symlink=/usr/local/apache/logs/access_log
  /usr/local/apache/logs/access_log.%Y%m" common

  /usr/local/apache/logs/access_log -> /usr/local/apache/logs/access_log.200308
  /usr/local/apache/logs/access_log.200307
  /usr/local/apache/logs/access_log.200308

3) images 로그와 warm 로그는 별도로 저장

웹서버 튜닝 중에 이미지 파일만 별도의 웹서버로 분리하는 방법이 있다.
이 방법은 Request와 I/O 출력, 트래픽을 분산하는 효과가 있을 것이다.

이런 튜닝 방법과는 다르지만 images 로그만 별개로 파일로 저장하는 방법을 소개한다.
다음은 이미지 파일은 images_log에, Codered나 Nimda 등의 warm은 warm_log 에 저장하는 설정이다.

---------------------------------
SetEnvIf Request_URI ".gif$"           except=images
SetEnvIf Request_URI ".jpe?g$"         except=images
SetEnvIf Request_URI ".png$"           except=images
SetEnvIf Request_URI "^/default.ida"   except=warm     # Codered
SetEnvIf Request_URI "/root.exe?"      except=warm     # Nimda
SetEnvIf Request_URI "/cmd.exe?"       except=warm
SetEnvIf Request_URI "^/NULL.printer"  except=warm     #
SetEnvIf Request_URI "^/NULL.IDA?"     except=warm
SetEnvIf Request_URI "^/NULL.ida?"     except=warm
SetEnvIf Request_URI "^/NULL.idq?"     except=warm

SetEnvIf except      images   images
SetEnvIf except      warm     warm

CustomLog logs/access_log common env=!except
CustomLog logs/images_log common env=images
CustomLog logs/warm_log   common env=warm
---------------------------------
 
URI 중에 .gif, .jpg, .jpeg, .png 로 끝나는 것은 except 변수에 images값으로 정의하고,
/default.ida, /root.exe?, /cmd.exe?, /NULL.printer, /NULL.IDA?, /NULL.ida? /NULL.idq?
등은 윈도의 IIS의 취약점을 이용한 웜 공격으로 except 변수에 warm 값으로 정의한다.
 
그리고 또한번  변수 except의 값이 images 인 것은 변수 images로 정의
변수 except의 값이 images 인 것은 변수 warm으로 정의
 
CustomLog 설정을 보면
env=!except 에 의해 image와 warm로그(except변수로 정의)를 제외한(=!) 것만 access_log
에 저장하게 된다.
마찬가지로 env=images, env=warm에 따라 각각 images_log, warm_log에 저장하게 된다.
 
 
cronolog 와 함께 쓸 때는 다음과 같이
 
CustomLog "|/usr/local/sbin/cronolog --symlink=/usr/local/apache/logs/access_log
/usr/local/apache/logs/access_log.%Y%m" common env=!except
CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/images_log.%Y%m"  common env=images
CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/warm_log.%Y%m"    common env=warm

  1. No Image 08Oct
    by ADMINPLAY
    2008/10/08 by ADMINPLAY
    Views 14799 

    apache 2.0.x , 2.2.x 버전대 max client 값 수정시

  2. No Image 30Sep
    by ADMINPLAY
    2009/09/30 by ADMINPLAY
    Views 14691 

    브라우저 접속 제한하기

  3. No Image 12Jan
    by ADMINPLAY
    2009/01/12 by ADMINPLAY
    Views 14674 

    CGI 퍼미션 으로 웹페이지 열리지 않음

  4. No Image 26Nov
    by ADMINPLAY
    2009/11/26 by ADMINPLAY
    Views 14666 

    apache log에 그림이미지 파일 로그 안남기기

  5. No Image 18Apr
    by ADMINPLAY
    2009/04/18 by ADMINPLAY
    Views 14662 

    expires설정으로 브라우저캐시

  6. No Image 06Jun
    by ADMINPLAY
    2009/06/06 by ADMINPLAY
    Views 14617 

    Tomcat 4 과 Apache 2 연동

  7. No Image 25Dec
    by ADMINPLAY
    2008/12/25 by ADMINPLAY
    Views 14463 

    AWSTATS 국가별 사용자 분석

  8. No Image 30Jul
    by ADMINPLAY
    2012/07/30 by ADMINPLAY
    Views 14405 

    Apache 에서 최대 접속자 수 늘리기

  9. No Image 26Nov
    by ADMINPLAY
    2009/11/26 by ADMINPLAY
    Views 14217 

    rewrite 모듈을 이욜한 서브도메인으로 홈페이지 운영하기

  10. No Image 18Jul
    by ADMINPLAY
    2009/07/18 by ADMINPLAY
    Views 14217 

    apache 에서 euc-kr홈페이지를 포팅할때 화면이안나올경우

  11. No Image 08Oct
    by ADMINPLAY
    2008/10/08 by ADMINPLAY
    Views 14196 

    httpd.conf 파일에 대한 설명 / 번역

  12. No Image 15Oct
    by ADMINPLAY
    2009/10/15 by ADMINPLAY
    Views 14176 

    SSL 인증서 발급 후 SSL mode 시작시 두 개의 패스워드 입력해야할 때 패치방법

  13. CGI 오류: Premature end of script headers (Internal Server Error)

  14. No Image 26Nov
    by ADMINPLAY
    2009/11/26 by ADMINPLAY
    Views 14017 

    사용자 인증

  15. No Image 21Jun
    by ADMINPLAY
    2009/06/21 by ADMINPLAY
    Views 13815 

    Apache 웹서버 MaxClient 최대값 조정을 위한 C & CPP 플래그 변수값

  16. No Image 10May
    by ADMINPLAY
    2009/05/10 by ADMINPLAY
    Views 13767 

    [자료] 웹사이트 성능개선 위한 커널 튜닝 사례

  17. No Image 14Dec
    by ADMINPLAY
    2008/12/14 by ADMINPLAY
    Views 13527 

    apache log 정리

  18. No Image 04Mar
    by ADMINPLAY
    2009/03/04 by ADMINPLAY
    Views 13361 

    Apache 1.3.12 httpd.conf 파일 한글설명

  19. No Image 27Jan
    by l2zeo
    2013/01/27 by l2zeo
    Views 12145 

    웹페이지 가속 기술인 모드 페이지스피드(mod_pagespeed)를 이용한 순수한 속도 향상

  20. No Image 18Mar
    by l2zeo
    2013/03/18 by l2zeo
    Views 11893 

    Apache expires 설정으로 브라우저 캐시

Board Pagination Prev 1 2 3 4 5 Next
/ 5

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234