apache log 관리 (logrotate, rotatelogs) > server

본문 바로가기
사이트 내 전체검색

server

apache log 관리 (logrotate, rotatelogs)

페이지 정보

작성자 서방님 댓글 0건 조회 181회 작성일 12-07-02 18:40

본문

@@ apache log 관리

1. log 파일이 남겨지지 않도록 설정.(웹로그가 필요없는 경우)
 - httpd.conf 에서 아래부분을 수정.
  * 주의
   - vhost.conf에서 log관련 설정이 없으면 로그가 쌓이지 않음.
   - vhost.conf에서 log관련 설정이 있으면 해당 파일명으로 로그쌓임.(vhost우선)
(원본)
ErrorLog logs/error_log
CustomLog logs/access_log combined
(수정후)
ErrorLog /dev/null
CustomLog /dev/null combined


 - 하나의 virtualhost에만 적용할 때에는 해당 설정부분만 수정.
(원본)
<VirtualHost 192.168.0.100:80>
    ServerAdmin root@trdriver.com
    DocumentRoot /home/time
    ServerName time.trdriver.com
    ErrorLog logs/time.trdriver.com-error_log
    CustomLog logs/time.trdriver.com-access_log combined
</VirtualHost>

(수정후)
<VirtualHost 192.168.0.100:80>
    ServerAdmin root@trdriver.com
    DocumentRoot /home/time
    ServerName time.trdriver.com
    ErrorLog /dev/null
    CustomLog /dev/null common
</VirtualHost>

 

2. cron을 이용한 rotate
 - /etc/logrotate.conf ;로그로테이트 설정파일의 내용에 따라 /etc/logrotate.d 하위의 설정들을 실행함.

 - /etc/logrotate.d/httpd 파일생성.
(내용)
"/var/log/httpd/web-logs/*access_log" {
           nomail
           missingok
           notifempty
           rotate 1
           size = 300M
           sharedscripts
           postrotate
                /bin/kill -hup `cat /usr/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
           endscript
           copytruncate
}
(끝)

 

3. apache rotatelogs 를 이용한 rotate.

@@ logrotate
 # logrotate : 시스템에 있는 로그파일을 관리하는 데몬으로 로그파일을 자르고, 보관, 삭제 결과를 메일로 통보해주는 데몬.

 # logrotate 관련파일
 - /usr/sbin/logrotate : 데몬의 위치 및 데몬프로그램
 - /etc/logrotate.conf : 설정파일
 - /etc/logrotate.d : logrotate 에 적용할 각종로그파일들을 보관하는 디렉토리
 - /var/lib/logrotate.status : logrotate가 작업한 내역을 보관할 파일
 - /etc/cron.daily/logrotate : logrotate : cron 에 의해 일단위로 실행이 됨.
 - /usr/sbin/logrotate : logrotate 의 데몬. crond 에 의해 주기적으로 실행이 됨.
 - /etc/logrotate.conf : logrotate 설정파일.
 - /etc/logrotate.d : 서비스별 로테이트 설정파일들을 보관하는 곳.

 # logrotate 설정 설명
  > monthly : 월 단위로 로테이트 한다.
  > daily : 월 단위로 로테이트 한다.
  > weekly : 월 단위로 로테이트 한다.
  > compress : 로테이트시킨후 압축한다.
  > nocompress : 압축을 원치 않는다.
  > rotate 2 : 로테이트 파일수 지정.
  > mail admin@trdriver.com : 로테이트 설정에 의해 보관주기가 끝난 파일을 메일로 발송한다.
  > mailfirst admin@trdriver.com : 로테이트시 신규파일 이전의 로그를 메일로 발송한다.
  > nomail : 메일로 통보받지 않음.
  > errors admin@trdriver.com : 로테이트 실행시 에러가 발생하면 이메일로 통보한다.
  > prerotate-endscript : 사이의 명령어를 로그파일 처리전에 실행한다.
  > postrotate-endscript : 사이의 명령어를 로그파일 처리후에 실행한다.
  > size : 지정한 용량이 되면 로그로테이트를 실행한다. 100k, 100M 이런식으로 지정한다.
  > create : 로테이트 후 생성되는 파일의 소유주, 퍼미션을 지정한다.
  > extension : 로테이트 후 생성되는 파일의 확정자를 지정한다.
  > copytruncate : 이옵션을 넣지 않으면 현재 사용중인 로그를 다른이름으로 move하고 새로운 파일을 생성한다.
    이옵션을 사용하면
  > ifempty : 로그파일이 비어있는 경우에도 로테이트한다.
  > notifempty : 로그파일이 비어있을경우 로테이트 하지 않는다.

4. apache의 rotatelogs 를 이용
  - 이건 간단하니까 그냥 아래를 참고하라.
(예)
<VirtualHost 192.168.0.100:80>
    ServerAdmin root@trdriver.com
    DocumentRoot /home/time
    ServerName time.trdriver.com
    CustomLog "|/home/httpd/bin/rotatelogs /home/httpd/logs/trdriver.net-access_log.%y%m%d%s 86400" combined
    ErrorLog "|/home/httpd/bin/rotatelogs /home/httpd/logs/trdriver.com-error_log.%y%m%d%s 86400"
</VirtualHost>

  > apache 설치경로에 보면 rotatelogs 라는 파일이있는데 로그를 로테이트 시켜주는 역활을 한다.
  > 위의 내용은 대략 trdriver.net-access_log 파일 뒤에 년월일 정보를 붙인 파일명으로 86400초마다 로테이트
    한다는 내용이다.

댓글목록

등록된 댓글이 없습니다.

Total 356건 17 페이지
게시물 검색

회원로그인

접속자집계

오늘
136
어제
225
최대
1,347
전체
154,895
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.