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초마다 로테이트
한다는 내용이다.
댓글목록
등록된 댓글이 없습니다.