웹사이트 검색

Ubuntu 12.10에서 Logrotate로 로그 파일을 관리하는 방법


로그로테이트에 대하여

Logrotate는 시스템에서 로그 파일의 자동 회전, 제거 및 압축과 같은 활동을 관리하는 유틸리티/도구입니다. 로그를 관리하여 귀중한 디스크 공간을 절약할 수 있는 훌륭한 도구입니다. 간단하면서도 강력한 구성 파일을 가짐으로써 다양한 로그 회전 매개변수를 제어할 수 있습니다. 이렇게 하면 로그가 자동으로 관리되는 방식을 완벽하게 제어할 수 있으며 수동 개입이 필요하지 않습니다.

전제 조건

전제 조건으로 드롭릿 또는 VPS를 설정하는 방법에 대한 기사를 검토했다고 가정합니다. 그렇지 않은 경우 여기에서 기사를 찾을 수 있습니다. 이 자습서에서는 VPS를 실행하고 로그인해야 합니다.

로그로테이트 설정

1단계 - 시스템 및 시스템 패키지 업데이트

다음 명령을 실행하여 apt-get에서 패키지 목록을 업데이트하고 최신 버전의 패키지 및 해당 종속성에 대한 정보를 가져옵니다.

sudo apt-get update

2단계 - Logrotate 설치

logrotate가 아직 VPS에 없으면 apt-get을 통해 지금 설치하십시오.

sudo apt-get install logrotate

3단계 - 확인

logrotate가 성공적으로 설치되었는지 확인하려면 명령 프롬프트에서 실행하십시오.

logrotate

logrotate 유틸리티는 구성 파일을 기반으로 하므로 위의 명령은 파일을 회전하지 않으며 사용법에 대한 간략한 개요와 사용 가능한 스위치 옵션을 보여줍니다.

4단계 - Logrotate 구성

logrotate 유틸리티의 구성 및 기본 옵션은 다음 위치에 있습니다.

/etc/logrotate.conf

중요한 구성 설정 중 일부는 회전 간격, 로그 파일 크기, 회전 횟수 및 압축입니다.

응용 프로그램별 로그 파일 정보(기본값 재정의)는 다음 위치에 보관됩니다.

/etc/logrotate.d/

개념을 더 잘 이해하기 위해 몇 가지 예를 살펴보겠습니다.

5단계 - 예

예제 응용 프로그램 구성 설정은 /etc/logrotate.d/dpkg에 저장되는 dpkg(Debian 패키지 관리 시스템)입니다. 이 파일의 항목 중 하나는 다음과 같습니다.

/var/log/dpkg.log {
	monthly
	rotate 12
	compress
	delaycompress
	missingok
	notifempty
	create 644 root root
}

이것이 의미하는 바는 다음과 같습니다.

  • dpkg에 대한 로그 회전은 /var/log/dpkg.log 파일을 모니터링하고 이를 매월 수행합니다. 이것이 회전 간격입니다.
  • 12회전은 12일 분량의 로그가 보관됨을 의미합니다.
  • compress를 지정하여 gzip 형식을 사용하여 로그 파일을 압축할 수 있으며 delaycompress는 다음 로그 회전까지 압축 프로세스를 지연시킵니다. delaycompress는 compress 옵션이 지정된 경우에만 작동합니다.
  • missingok은 오류 발생 시 중단되는 것을 방지하고 다음 로그 파일을 계속 진행합니다.
  • notifempty는 로그 파일이 비어 있는 경우 로그 회전을 방지합니다.
  • create 은 로그 회전 후 지정된 속성으로 새로운 빈 파일을 생성합니다.

위의 예에서는 누락되었지만 시스템에서 증가하는 로그의 크기를 제어하려는 경우 크기도 중요한 설정입니다.

약 100MB의 구성 설정은 다음과 같습니다.

size 100M

크기와 회전 간격을 모두 설정하면 크기가 더 높은 우선 순위로 간주됩니다. 즉, 구성 파일에 다음 설정이 있는 경우:

monthly
size 100M

그런 다음 파일 크기가 100M에 도달하면 로그가 순환되므로 월간 주기를 기다릴 필요가 없습니다.

6단계 - 크론 작업

수동 프로세스를 피할 수 있고 자동으로 처리되도록 로그 회전을 cron으로 설정할 수도 있습니다. /etc/cron.daily/logrotate 에 항목을 지정하면 순환이 매일 트리거됩니다.

7단계 - 상태 확인 및 검증

특정 로그가 실제로 회전하는지 확인하고 회전의 마지막 날짜와 시간을 확인하려면 /var/lib/logrotate/status 파일을 확인하십시오. 이것은 로그 파일 이름과 마지막으로 회전한 날짜가 포함된 깔끔한 형식의 파일입니다.

cat /var/lib/logrotate/status 

예를 들어 이 파일의 몇 가지 항목은 다음과 같습니다.

"/var/log/lpr.log" 2013-4-11
"/var/log/dpkg.log" 2013-4-11
"/var/log/pm-suspend.log" 2013-4-11
"/var/log/syslog" 2013-4-11
"/var/log/mail.info" 2013-4-11
"/var/log/daemon.log" 2013-4-11
"/var/log/apport.log" 2013-4-11

축하해요! 시스템에 logrotate가 설치되어 있습니다. 이제 요구 사항에 따라 구성 설정을 변경하십시오.