-
[Linux] 리눅스 로그관리 logrotateLinux 2014. 12. 20. 19:04728x90
logrotate 란?
리눅스내에서 시스템에 있는 모든 로그파일들을 관리할 수 있으며,
이들 로그파일들을 날짜를 지정하여 주기적으로 압축, 백업, 삭제, 메일로 보내는 등의 작업을 할 수 있도록 하여주는 기능
왜 logrotate가 필요한가?
리눅스를 서버로 돌리면 하루에도 많은 로그 파일들이 생성됩니다.
서버 용량은 한정되어 있고 이와 같은 로그들이 차곡차곡 쌓이다보면
로그로 인해 하드 용량이 부족한 경우가 생겨 성능이 떨어질 수 있는데
매번 수동으로 로그파일이 저장되는 곳으로 이동하여 하나하나 삭제하는 일은 번거로운 일이 아닐수 없습니다.
이와 같이 로그파일를 수동으로 관리하지 않고 logrotate기능을 사용한다면 보다 효과적으로 관리할 수 있을것입니다.
logrotate 구동순서
cron(주기적으로 반복되는 일을 자동적으로 실행될수 있도록 설정해놓는 것, 데몬)을 이용해 logrotate 실행
crontab > cron.daily > logrotate > logrotate.conf > logrotate.d
logrotate를 사용하기
logrotate 설치 확인
[root@boya-dev01 ~]# rpm -qf /etc/logrotate.conf
logrotate-3.7.4-9.el5_5.2또는
[root@boya-dev01 ~]# rpm -qa | grep logrotate
logrotate-3.7.4-9.el5_5.2위와같이 rpm패키지로 logrotate의 3.7.4-9버전이 설치되어있는걸 확인 할 수있습니다.
이제 logrotate환경설정 파일인 logrotate.conf파일에 대해 알아보겠습니다.
[root@boya-dev01 ~]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly# keep 4 weeks worth of backlogs
rotate 4# create new (empty) log files after rotating old ones
create# 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 -- we'll rotate them here
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
}# system-specific logs may be also be configured here.
# rotate log files weekly
- 로그파일을 순환할 기간을 설정합니다 (yearly:매년, monthly:매달, weekly:매주, daily:매일)
# keep 4 weeks worth of backlogs
- 순환될 파일의 개수를 설정합니다. 최소값은 0입니다.예를들어 위에서 weekly로 설정하고 rotate 4를 주게되면 4주간 보관한뒤 순환하게 되며,
위에서 daily로 설정하고 rotate 15를 주게되면 15일간 보관한뒤 순환하게 된다는 의미입니다.
# create new (empty) log files after rotating old ones
- 로그파일을 백업하고 새로운 파일을 생성할 것인지를 설정합니다.# uncomment this if you want your log files compressed
- 순환된 로그파일을 압축할것인지를 설정합니다.(압축방식 : gzip)
# RPM packages drop log rotation information into this directory
- 로그 순환정보를 가진 디렉토리를 불러옵니다.
# no packages own wtmp -- we'll rotate them here
- /var/log/wtmp의 로그설정을 합니다.
monthly, rotate 1, minsize 1M이므로 한달에 한번 로그파일용량이 1M가 되면 순환하게 되며
백업파일은 root사용자의 utmp그룹의 소유로 퍼미션 644를 부여합니다.
옵션설명
daily
매일 순환
weekly
매주 순환
monthly
매달 순환
yearly
매년 순환
rotate 파일갯수
순환될 파일갯수
compress
순환된 로그파일 압축(gzip)
nocompress
순환된 로그파일을 압축하지 않는다(기본값)
compresscmd 압축명
gzip 이외의 압축프로그램 지정
uncompresscmd
압축해제 명령 지정(기본값 : gunzip)
compressext 확장자명
압축된 백업 로그파일에 지정할 확장자 설정
compressoptions 옵션
압축 프로그램에 대한 옵션 설정(-9 : 압축률 최대)
dateext
로그파일에 YYYYMMDD형식의 확장자 추가
errors 메일주소
에러 발생시 지정된 메일주소로 메일발송
extention 확장자명
순환된 로그파일의 확장자 지정
ifempty
로그파일이 비어있는 경우 순환(기본값)
noifempty
로그파일이 비어있는 경우 순환하지 않는다
mail 메일주소
순환후 이전 로그파일을 지정된 메일주소로 발송
maxage
count로 지정된 날수가 지난 백업 파일 삭제
missingok
로그파일이 없을 경우에도 에러 처리하지 않는다
prerotate / endscript
순환작업 전에 실행할 작업 설정
postrotate / endscript
순환작업 후에 실행할 작업 설정
sharedscripts
prerotate, postrotate 스크립트를 한번만 실행
size 사이즈
순환 결과 파일사이즈가 지정한 크기를 넘지않도록 설정
copytruncate
현재 로그파일의 내용을 복사하여 원본 로그파일의 크기를 0으로 생성
추가적으로 관리해야할 로그정보는 /etc/logrotate.d 에 저장하면 됩니다.
ex)
[root@boya-dev01 ~]# cat /etc/logrotate.d/test_log
# test_log file logrotate configuration
errors dis_holic@naver.com/svc/jboss/app/logs/test_logs/* {
weekly
rotate 2
missingok
notifempty
}설명
- 순환중 에러가 발생하면 dis_holic@naver.com로 메일을 보낸다.
- /svc/jboss/app/logs/test_logs/ 경로의 로그를 순환한다.
- 2주마다 순환한다.
- 로그파일이 없을 경우에도 에러 처리하지 않는다.
- 로그파일이 비어있는 경우 순환하지 않는다.
최종적으로 로그파일들은 순환한뒤 이전 파일은 삭제됩니다.
출처 - http://dis_holic.blog.me/60175516847
'Linux' 카테고리의 다른 글
jmeter master slave 구조 설치 및 설정 가이드 (0) 2020.10.30 iscsi setup (0) 2019.08.01 Postgresql install on centos 7 (0) 2018.07.24