logrotate
logrotate는 늘어나는 로그파일을 관리하기위해 리눅스에서 사용하되는 프로그램입니다.
설정 파일을 변경해도 관련 프로세스를 새로 시작할 필요 없이 cron 데몬이 주기적으로 실행 시켜줍니다. /etc/cron.daily/logrotate 파일로 관리가 됩니다. (이때문에 cron데몬이 중지되어 있거나 crontab내용중
/etc/cron.daily 이 설정되어있지 않으면 스케줄관리가 되지않습니다. )
centos6점대에서 logrotate로 인한 아파치(apache) 장애가 날때도 있어 관련내용을 요약해봅니다.
1. 설치
OS에 따라 설치되어있기도 합니다. 우선 확인
# rpm -qa | grep logrotate
logrotate-3.8.6-17.el7.x86_64
만약 설치되어있지 않다면 설치합니다.
# yum install -y logrotate
2. 설정파일
메인 설정파일은 /etc/logrotate.conf 이며 실제 내용을 살펴보면
# vi /etc/logrotate.conf
# see “man logrotate” for details
# rotate log files weekly
weekly <==== 로그 파일을 1주일에 한 번 백업합니다. 다른 옵션으로는 daily, monthly, yearly가 있습니다.
# keep 4 weeks worth of backlogs
rotate 4 <==== 최대 로그 파일 개수를 4개까지만 생성됩니다. weekly에 rotate 4면 최대 4주치의 로그만 기록되고 5주째부터는 1주차 로그가 삭제되고 2, 3, 4, 5주차 로그가 저장됩니다.
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d <==== 추가(개별)설정파일 위치입니다.
# no packages own wtmp and btmp — we’ll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
각 프로그램들의 관리파일들은 /etc/logrotate.d 에 있습니다.
로그를 쌓는 프로그램들을 설치시 이 폴더에 스케줄관리를 위한 파일들이 생성됩니다.
# cd /etc/logrotate.d/
# ls
bootlog cups httpd libvirtd libvirtd.qemu numad ppp samba syslog wpa_supplicant
chrony glusterfs iscsiuiolog libvirtd.lxc mysql php-fpm psacct sssd vsftpd yum
3. 장애
가끔 centos6점대 버전에서 yum으로 apm을 설치한경우 주기적으로 일정한 시간때에 아파치가 멈출때가있습니다.
아파치 실행중 httpd reload 명령을 실행하면 아파치가 먹통이 되는 버전이 있습니다.
/etc/logrotate.d/httpd 의 내용중 httpd reload 라는 명령때문일 수 있으니 삭제해 주시면 됩니다.