검색결과 리스트
글
Linux Log 관리를 위한 logrotate 명령으로 로그 관리하기
Linux Log 관리를 위한 logrotate 명령으로 로그 관리하기
logrotate란?
서버의 프로세스가 동작하면서 /var/log 경로에 httpd,mysqld,yum,access 등 수많은 로그가 생성되는데
이 로그들을 관리하지 않으면 파일시스템 한계가 와서 서버에 부하가 걸릴 수 있다.
이런 상황을 방지하기 위해 로그들을 일정기간이 지나면 이전 로그들을 압축하여 용량을 줄이고 오래된 로그들은
삭제해줘야 하는데 이런 일련의 작업을 주기적으로 자동 관리해 주는 프로그램이 logrotate이다.
logrotate 설치방법은?
logrotate는 리눅스OS 설치시 자동으로 설치 된다.
# rpm -qf /etc/logrotate.conf // logrotate버전 확인 logrotate-3.7.8-17.el6.x86_64
# rpm -ql logrotate-3.7.8-17.el6.x86_64 //logrotate 패키지 구성 경로 확인
/etc/cron.daily/logrotate /etc/logrotate.conf /etc/logrotate.d /usr/sbin/logrotate /usr/share/doc/logrotate-3.7.8 /usr/share/doc/logrotate-3.7.8/CHANGES /usr/share/doc/logrotate-3.7.8/COPYING /usr/share/man/man5/logrotate.conf.5.gz /usr/share/man/man8/logrotate.8.gz /var/lib/logrotate.status |
logrotate 주요 구성은 아래와 같다.
/etc/cron.daily/logrotate //주기적인 cron 실행
/etc/logrotate.conf // logrotate 설정파일
/etc/logrotate.d // logrotate를 적용할 프로세스 설정파일
/usr/sbin/logrotate // logrotate 데몬 위치
/var/lib/logrotate.status // logrotate 작업내역 보관파일
/etc/logrotate.conf 에서 무엇을 설정할수 있나?
모든 로그들의 생성 주기 및 삭제주기등을 conf파일에서 총괄적으로 설정 할 수 있다.
logrotate.conf 를 열면...
# see "man logrotate" for details # rotate log files weekly weekly // 1주 단위로 잘라서 보관
# keep 4 weeks worth of backlogs rotate 4 //1주단위로 자른 파일을 4개까지 보관(= 한달치까지 보관)
# create new (empty) log files after rotating old ones create //로그를 백업하고 새로운 파일 생성
# use date as a suffix of the rotated file dateext // 로그파일에 YYYYMMDD형식의 날짜 확장자 추가
# uncomment this if you want your log files compressed #compress // 순환된 로그파일 압축할 것인지 설정(gzip)
# RPM packages drop log rotation information into this directory include /etc/logrotate.d //각각의 프로세스들의 로그 설정파일이 있는 곳. include하여 불러온다.
# no packages own wtmp and btmp -- we'll rotate them here // conf파일에서 프로세스 로그설정을 직접설정. /var/log/wtmp { monthly // 한달단위로 순환 create 0664 root utmp // 새로 생성될 백업파일은 퍼미션664, root사용자, utmp 그룹의 소유권한 부여 minsize 1M // 파일용량이 1M가 되면 순환시킨다. rotate 1 //순환된 파일은 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 [root@ logrotate.d]# ls dracut exim fail2ban freshclam httpd iscsiuiolog mysqld shorewall syslog yum //각각의 프로세스 로그들을 설정할 수 있다. |
이중 하나의 로그설정을 살펴보자.
# vi httpd
/var/log/httpd.log { // 작업할 로그파일의 절대 경로지정. "{}" 안에서 logrotate설정가능. missingok //로그파일이 없을경우라도 에러처리하지 않음 notifempty //로그파일이 비어있을경우 순환하지 않음 size 30k //파일사이즈가 30k일 경우 순환 create 0600 root root // 새로 생성될 백업파일은 퍼미션0600, root사용자,그룹 소유권한 부여 postrotate //순환 작업 후에 실행할 명령 설정 /usr/bin/fail2ban-client set logtarget SYSLOG 2> /dev/null || true endscript }
|
* 설정 옵션설명
daily |
매일순환 |
weekly |
매주순환 |
monthly |
매달순환 |
yearly |
매년 순환 |
rotate |
순환되어 보관될 파일갯수 |
compress |
순환될 파일 압축(gzip) |
nocompress
|
순환될 로그파일 압축하지 않음 |
compressext 확장자명 |
압축된 백업로그파일에 지정할 확장자 설정 |
compresscmd 압축명 |
gzip이외의 압축파일 지정 |
cpmpressoptions 옵션 |
압축프로그램에 대한 옵션 설정(-9: 압축률 최대) |
dateext |
로그파일에 YYYYMMDD형식의 확장자 추가 |
errors 메일주소 |
에러발생시 지정된 메일주소로 메일 발송 |
extention 확장자명 |
순환된 로그파일의 확장자 지정 |
ifempty |
로그파일이 비어있는 경우 순환(기본값) |
noifempty |
로그파일이 비어있는 경우 순환하지 않는다. |
mail 메일주소 |
순환 후 이전 로그파일을 지정된 메일주소로 발송 |
maxage |
count로 지정된 날수가 지난 백업파일 삭제 |
missingok |
로그파일이 없을 경우에도 에러처리하지 않는다. |
prerotate / endscript |
순환작업 전에 실행할 작업 설정 |
postrotate / endscript |
순환작업 후에 실행할 작업 설정 |
sharedscripts |
prerotate, postrotate 스크립트를 한번만 실행 |
size 사이즈 |
순환결과 파일사이즈가 지정한 크기를 넘징낳도록 설정 |
copytruncate |
현재 로그파일의 내용을 복사하여 원본로그 파일의 크기를 0으로 생성 |
*logrostate 주요 옵션
-f , --force |
로그파일 강제순환 |
-s , --state |
/var/lib/logrotate.status 상황파일 대신 저정한 state파일을 사용한다. |
--usage |
logrostate의 기본 사용법을 간단히 보여준다. |
# logrotate --usage
Usage: logrotate [-dfv?] [-d|--debug] [-f|--force] [-m|--mail command] [-s|--state statefile]
[-v|--verbose] [-?|--help] [--usage] [OPTION...] <configfile>
[출처] [Linux] 리눅스 로그관리 logrotate 의 모든 것!!|작성자 J빠바
'Linux' 카테고리의 다른 글
리눅스 서버 아이피 라우트 설정 (0) | 2015.10.20 |
---|---|
리눅스 서버 마지막 부팅시간 확인하기 (0) | 2015.10.20 |
리눅스 Burute Force 공격에 대한 iptables 설정으로 방어하기 (0) | 2015.10.20 |
리눅스 shell 작성하기 (0) | 2015.10.20 |
리눅스 중요 디렉토리(폴더) 정보 (0) | 2015.10.20 |