검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Setting Up Logrotate on RedHat Linux

1. 소개
  Logrotate는 로그가 많이 쌓이는 상용 서버를 관리하는 관리자를 위한 유틸리티로 디스크 공간을 아끼면서 시스템이 용량 부족으로 뻗는 것을 방지합니다. 일반적으로 이런 문제를 막는 방법은 /var 마운트 포인트를 별도의 파티션이나 로지컬 볼륨으로 설정하는 것이지만 logrotate는 로그 파일을 일정 조건에 따라 다음 파일로 순환시키고 관리하여 해결합니다. 기본적으로 logrotate는 /etc/cron.daily/에 있는 cron 파일을 통해 하루에 한 번씩 실행됩니다.
$ ls -al /etc/cron.daily/logrotate
-rwxr-xr-x 1 root root 372 12월  1  2012 /etc/cron.daily/logrotate

2. Logrotate 설정
  Logrotate를 설정하려면 아래 두 파일을 수정해야 합니다.
  • /etc/logrotate.conf
  • /etc/logrotate.d/ 디렉토리에 있는 서비스별 설정 파일
  /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

# packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}

# system-specific logs may be configured here
  • weekly : 로그 파일을 주 단위로 순환시킨다.
  • rotate 4 : 4주 분량의 로그 파일을 보관한다.
  • create : 순환 후 새로운 빈 로그 파일을 생성한다.
  • include : 해당 디렉토리에 있는 파일들을 읽어서 적용한다.
  /etc/logrotate.d/ 디렉토리에는 각 서비스별 설정 파일이 있습니다.

3. 새로운 서비스의 로그를 logrotate의 관리하에 두기
  /var/log/sample.log라는 로그 파일이 있고 이 파일을 매일 순환시키길 원한다고 가정하면 /etc/logrotate.d/ 디렉토리에 새로운 파일을 생성(파일명은 원하는 것으로 생성하나 보통은 서비스명을 사용)하여 아래의 내용을 작성하여 저장합니다.
/var/log/linuxcareer.log {
    missingok
    notifempty
    compress
    size 20k
    daily
    create 0600 root root
}
  참고로 같은 디렉토리에 있는 다수의 로그 파일에 같은 설정을 적용하길 원한다면 와일드카드(*)를 사용할 수 있습니다. 예를 들어 파일명에 /var/log/mylogs/*.log 라고 적는다면 /var/log/mylogs/ 디렉토리 안에 .log 확장자를 가진 모든 파일을 순환시킵니다.

  위의 예제에 있는 각 항목에 대한 설명은 아래와 같습니다.
  • missingok : 로그 파일이 없어도 에러를 출력하지 않습니다.
  • notifempty : 파일이 비어있다면 순환하지 않습니다.
  • compress : 순환 대상을 gzip으로 압축합니다.
  • size : 로그 파일의 크기가 20k보다 클 때만 순환합니다.
  • daily : 매일 순환합니다.
  • create : 퍼미션은 600, 소유자와 소유 그룹은 root로 새로운 로그 파일을 생성합니다.
  그 외에도 많은 옵션이 존재하며 man logrotate를 통해 확인할 수 있습니다.


2013/07/12 15:44 2013/07/12 15:44