로그 파일이 너무 많아요? ubuntu에서 logrotate로 로그 정리하기

logrotate란 무엇인가요?

로그 파일은 시스템이나 애플리케이션의 작동 상태를 기록하는 파일입니다.
로그 파일은 문제를 진단하거나 성능을 분석하는 데 유용하지만, 너무 많아지면 디스크 공간을 차지하고 관리하기 어려워집니다.

logrotate는 이러한 문제를 해결하기 위해 만들어진 유틸리티입니다.
logrotate는 로그 파일의 크기와 수명을 제어하고, 필요에 따라 압축하거나 삭제하거나 이메일로 전송하는 등의 작업을 자동으로 수행할 수 있습니다.

logrotate는 주기적으로 cron에 의해 실행되며, /etc/logrotate.conf 파일과 /etc/logrotate.d 디렉토리에 있는 설정 파일들을 읽어서 로그 파일을 관리합니다.

ubuntu에서 logrotate를 설치하고 설정하는 방법

ubuntu에서 logrotate는 기본적으로 설치되어 있습니다.
만약 설치되어 있지 않다면, 다음 명령어로 설치할 수 있습니다.

1
sudo apt-get install logrotate
cs

logrotate의 설정 파일은 /etc/logrotate.conf와 /etc/logrotate.d 디렉토리에 있습니다. /etc/logrotate.conf는 전역 설정을 담고 있으며, /etc/logrotate.d 디렉토리에는 각각의 로그 파일이나 그룹에 대한 설정을 담고 있는 파일들이 있습니다.

logrotate의 설정 파일은 다음과 같은 형식으로 작성됩니다.

1
2
3
4
# 로그 파일이나 그룹의 경로
{
  # 옵션들
}
cs

옵션들은 다양한 기능을 제공하는데, 자주 사용되는 옵션들은 다음과 같습니다.

  • size: 로그 파일의 크기가 지정된 값보다 커지면 로테이션을 수행합니다. 단위는 k, M, G 등으로 표시할 수 있습니다.
  • rotate: 로그 파일을 몇 개까지 보관할 것인지 지정합니다. 예를 들어 rotate 5라고 하면, 최근 5개의 로그 파일만 남기고 나머지는 삭제합니다.
  • daily: 매일 로테이션을 수행합니다. weekly, monthly 등도 사용할 수 있습니다.
  • compress: 로테이션된 로그 파일을 gzip으로 압축합니다.
  • create: 새로운 로그 파일을 생성할 때의 권한과 소유자를 지정합니다. 예를 들어 create 644 root adm이라고 하면, 새로운 로그 파일은 644의 권한과 root의 소유자와 adm의 그룹을 가집니다.
  • missingok: 로그 파일이 없어도 에러를 발생시키지 않습니다.
  • notifempty: 로그 파일이 비어있으면 로테이션을 수행하지 않습니다.
  • postrotate: 로테이션 후에 실행할 명령어를 지정합니다. 예를 들어 postrotate service nginx reload라고 하면, 로테이션 후에 nginx 서비스를 재시작합니다.
옵션들의 자세한 설명은 man logrotate 명령어로 확인할 수 있습니다.

ubuntu에서 logrotate를 테스트하는 방법

logrotate는 주기적으로 cron에 의해 실행되지만, 테스트를 위해 직접 실행할 수도 있습니다.
다음 명령어로 logrotate를 실행할 수 있습니다.

1
sudo logrotate -/etc/logrotate.conf
cs

-v 옵션은 상세한 정보를 출력하도록 합니다.

logrotate를 실행하면, 설정 파일에 따라 로그 파일들이 로테이션되고, 새로운 로그 파일이 생성되고, 압축되고, 삭제되는 등의 작업이 수행됩니다.
출력된 정보를 통해 어떤 작업이 수행되었는지 확인할 수 있습니다.

결론

ubuntu에서 logrotate를 사용하면, 로그 파일을 효율적으로 관리할 수 있습니다.
logrotate는 로그 파일의 크기와 수명을 제어하고, 압축하거나 삭제하거나 이메일로 전송하는 등의 작업을 자동으로 수행할 수 있으며, logrotate의 설정 파일을 편집하면, 원하는 대로 로그 파일을 관리할 수 있습니다.
로그 파일이 너무 많아지면, 디스크 공간을 낭비하고, 문제를 찾기 어려워지고, 성능에도 영향을 줄 수 있는데 logrotate를 사용하면, 이러한 문제들을 예방하고, 시스템이나 애플리케이션의 상태를 쉽게 모니터링할 수 있습니다.

이 포스팅을 보고 logrotate활용하는데 도움이 되었으면 좋겠습니다.
감사합니다.😊

댓글

이 블로그의 인기 게시물

crontab 설정방법과 로그 확인하는 법

Microsoft Defender 방화벽 설정 또는 해제하는 방법

한국 군비지출 세계 9위