로그로 인한 서버 부하시 조치하는 방법입니다.
1. logrotate 설정
apache 모든 log 파일
- 주기 : 매일 또는 로그 용량이 10M 가 되었을때
- 결과 : 파일 백업 후, 새 로그파일 생성
- 보관 : 3개 까지 보관
- 로그 파일이 없어도 괜찮음 (missingok)
# vi /etc/logrotate.d/apache
/usr/local/apache/logs/*_log { daily rotate 3 size=10M missingok create 0600 root root postrotate /bin/kill -HUP `cat /usr/local/apache/logs/httpd.pid 2>/dev/null` 2> /dev/null || true endscript } |
* 참고
1) 로그 파일명
로그가 쌓이는 파일명을 잘 지정해놔야 합니다.
/usr/local/apache/logs/* 같이 할 경우 rotate 된 파일까지 다시 rotate 가 되므로
/usr/local/apache/logs/apache.log 와 같이 해당 로그만 rotate 될 수 있도록 해야 합니다.
2) PDNS 의 경우
PDNS 의 경우 아래와 같이 합니다.
PowerDNS 의 경우 로컬 syslog 에 기록하므로 로그 파일을 회전할 때 HUP 신호를 보내야 하는 것은 syslog 데몬입니다.
PowerDNS에 신호를 보낼 필요가 없습니다.
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
2. 실행 TEST
cron 설정으로 매일 또는 일정 시간에 실행 되도록 합니다. (기본 설정)
강제 실행으로 정상적으로 작동하는지 바로 확인이 가능합니다.
> 로그파일 용량 보다 작게 설정하여 (사이즈 변경) 실행하면 확인이 쉽습니다.
# logrotate -f /etc/logrotate.d/apache