« Previous : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : ... 11 : Next »

아파치 로그 설정 (rotatelogs)

접속자가 많은 사이트에서는 아파치 로그를 관리하는 것도 만만치 않다.
Linux, solaris 등에서 로그 파일 크기가 2GB가 넘어서 골치아픈 경우도 발생한다.
또한 로그 파일이 크면 클수록 서버에 필요없는 무리를 주는 것도 사실이다.

Apache 자체에서 제공하는 rotatelogs를 이용하여 로그를 시간과 용량에 따라
weblog를 분리 저장하는 방법

로그를 관리하기 위해 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.%Y%m%d-%H%M%S 86400" common
또는
CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log.%Y%m%d 86400" common

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

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

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

위 rotatelogs 적용 방법은 어떤 로그에서도 적용하여 분할 관리가 가능하다.

# 기본 access_log.%Y%m%d 86400 설정시 매일 24시에 새로 생성되지 않고 오전 9시경에 분할이 됨.
GMT 기준 우리나라가 9시간 빨라서 발생하는 현상.
밤 12시에 rotat를 실행하기 위해서는 GMT + 9(9 * 60 = 540분)시간을 더해줍니다.
예) "access_log.%Y%m%d 86400 +540"


# 설정위치 : apache/conf/
httpd.conf 파일 또는 httpd-vhosts.conf 등 VirtualHost 설정의 CustomLog 부분에 추가

<VirtualHost *:80>
    ServerAdmin abc@abc.com
    DocumentRoot "/apache/htdocs"
    ServerName localhost
    ErrorLog "logs/localhost-error_log"
#    CustomLog "logs/localhost-access_log" combined
    CustomLog "|/apache/bin/rotatelogs /apache/logs/localhost-access_log.%Y%m%d 86400 +540" combined

<Directory /apache/htdocs/>
        Options MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
</Directory>
</VirtualHost>


주의
: CustomLog "|/apache/bin/rotatelogs"  이부분의 | 이것은 파이프 라인, | 파이프라인이 빠졌을경우 Apache 재시작 안될수 있음.

%A (지역화된) 완전한 요일 이름
%a (지역화된) 3-문자 요일 이름
%B (지역화된) 완전한 달 이름
%b (지역화된) 3-문자 달 이름
%c (지역화된) 날짜와 시간
%d 2-자리 일
%H 2-자리 시간 (24 시간 시계)
%I 2-자리 시간 (12 시간 시계)
%j 3-자리 날짜수
%M 2-자리 분
%m 2-자리 달
%p (지역화된) 12 시간 시계의 am/pm
%S 2-자리 초
%U 2-자리 주일수 (주의 첫번재 날은 일요일)
%W 2-자리 주일수 (주의 첫번재 날은 월요일)
%w 1-자리 요일수 (주의 첫번째 날은 일요일)
%X (지역화된) 시간
%x (지역화된) 날짜
%Y 4-자리 연도
%y 2-자리 연도
%Z 시간대 이름
%% 문자그대로 `%'



출처 : http://www.nicegass.co.kr/2009/07/linux-apache-log-%EA%B4%80%EB%A6%AC-rotatelogs%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EB%A1%9C%EA%B7%B8.html

참고 :
http://www.gurubee.net/display/SWDEV/Apache+rotatelogs
http://httpd.apache.org/docs/2.0/ko/programs/rotatelogs.html



※ 위 내용은, 여러 자료를 참고하거나 제가 주관적으로 정리한 것입니다.
   잘못된 정보나 보완이 필요한 부분을, 댓글 또는 메일로 보내주시면 많은 도움이 되겠습니다.
11 27, 2012 14:34 11 27, 2012 14:34


Trackback URL : http://develop.sunshiny.co.kr/trackback/847

Leave a comment
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

« Previous : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : ... 11 : Next »

Recent Posts

  1. HDFS - Python Encoding 오류 처리
  2. HP - Vertica ROS Container 관련 오류...
  3. HDFS - Hive 실행시 System Time 오류
  4. HP - Vertica 사용자 쿼리 이력 테이블...
  5. Client에서 HDFS 환경의 데이터 처리시...

Recent Comments

  1. 안녕하세요^^ 배그핵
  2. 안녕하세요^^ 도움이 되셨다니, 저... sunshiny
  3. 정말 큰 도움이 되었습니다.. 감사합... 사랑은
  4. 네, 안녕하세요. 댓글 남겨 주셔서... sunshiny
  5. 감사합니다 많은 도움 되었습니다!ㅎㅎ 프리시퀸스

Recent Trackbacks

  1. phoenix seo phoenix seo %M
  2. animal mobility services animal mobility services %M
  3. face masks face masks %M
  4. healer healer 5 07
  5. small dog wheelchair small dog wheelchair 5 07

Calendar

«   07 2020   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. 오라클 클럽
  4. API - Java
  5. Apache Hadoop API
  6. Apache Software Foundation
  7. HDFS 생태계 솔루션
  8. DNSBL - Spam Database Lookup
  9. Ready System
  10. Solaris Freeware
  11. Linux-Site
  12. 윈디하나의 솔라나라

Site Stats

TOTAL 3000413 HIT
TODAY 865 HIT
YESTERDAY 401 HIT