- 
          
          [Linux] 리눅스 로그관리 logrotateLinux 2014. 12. 20. 19:04728x90logrotate 란? 리눅스내에서 시스템에 있는 모든 로그파일들을 관리할 수 있으며, 이들 로그파일들을 날짜를 지정하여 주기적으로 압축, 백업, 삭제, 메일로 보내는 등의 작업을 할 수 있도록 하여주는 기능 왜 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