Linux 에서 로그 로테이션이 구성되었는지 확인하는 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 시스템에서 로그 로테이션 (log rotation) 이 구성되었는지 확인하는 방법을 배우게 됩니다. 로그 로테이션은 로그 파일을 관리하고 과도한 디스크 공간 소비를 방지하는 데 중요한 프로세스입니다. 주요 logrotate 구성 파일을 살펴보고, 애플리케이션별 로그 로테이션 스크립트를 검토하며, logrotate -d 명령을 사용하여 상태를 검사하고 로그 로테이션 프로세스를 시뮬레이션합니다.

이 랩의 단계를 따르면 Linux 시스템에서 로그 로테이션 설정을 확인하고 이해하는 실질적인 경험을 얻어 효율적인 로그 파일 관리를 보장할 수 있습니다.

cat /etc/logrotate.conf로 logrotate 설정 확인

이 단계에서는 logrotate의 주요 구성 파일을 보는 방법을 배우게 됩니다. logrotate는 많은 로그 파일을 생성하는 시스템에서 로그 파일 관리를 단순화하도록 설계된 유틸리티입니다. 자동 로테이션, 압축, 제거 및 로그 파일 메일을 보낼 수 있습니다.

logrotate의 주요 구성 파일은 /etc/logrotate.conf에 위치해 있습니다. 이 파일에는 전역 설정이 포함되어 있으며, /etc/logrotate.d/ 디렉토리에서 특정 애플리케이션 또는 서비스에 대한 구성이 포함되어 있습니다.

주요 logrotate 구성 파일의 내용을 보려면 cat 명령을 사용합니다. cat 명령은 파일을 순차적으로 읽어 표준 출력으로 쓰는 표준 Unix 유틸리티입니다.

아직 열려 있지 않다면 터미널을 엽니다. 데스크탑 왼쪽의 Xfce 터미널 아이콘을 클릭하여 터미널을 열 수 있습니다.

이제 터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

cat /etc/logrotate.conf

이 명령은 /etc/logrotate.conf 파일의 전체 내용을 터미널에 직접 표시합니다.

다음과 유사한 출력을 볼 수 있습니다.

## see "man logrotate" for details

## rotate log files weekly
weekly

## use the syslog group by default, since this is the owning group
## of /var/log/syslog.
su root syslog

## 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

## system-specific logs may be also be configured here.

이 출력은 logrotate의 기본 설정 (예: 주간 로그 로테이션 weekly, 4 주 분량의 로그 보관 rotate 4, 로테이션 후 새 로그 파일 생성 create) 을 보여줍니다. 또한 include /etc/logrotate.d 줄이 포함되어 있어 logrotate가 해당 디렉토리에서 추가 구성 파일을 읽도록 지시합니다.

주요 구성 파일을 이해하는 것은 Linux 시스템에서 로그 로테이션을 관리하는 첫 번째 단계입니다.

다음 단계로 진행하려면 **계속 (Continue)**을 클릭하십시오.

/etc/logrotate.d 에서 logrotate 스크립트 확인

이전 단계에서 주요 logrotate.conf 파일이 /etc/logrotate.d/ 디렉토리의 구성 파일을 포함한다는 것을 확인했습니다. 이 디렉토리는 개별 애플리케이션 및 서비스가 특정 logrotate 구성 파일을 배치하는 곳입니다.

/etc/logrotate.d/의 각 파일에는 일반적으로 특정 프로그램의 로그 파일을 로테이션하는 방법에 대한 지침이 포함되어 있습니다. 이 모듈식 접근 방식은 시스템에서 여러 다른 서비스에 대한 로그 로테이션을 더 쉽게 관리할 수 있도록 합니다.

이 디렉토리에 어떤 구성 파일이 있는지 확인하려면 ls 명령을 사용합니다. ls 명령은 디렉토리의 내용을 나열합니다.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

ls /etc/logrotate.d/

이 명령은 /etc/logrotate.d/ 디렉토리 내의 모든 파일을 나열합니다.

설치된 소프트웨어에 따라 다를 수 있는 파일 목록이 표시됩니다. 다음과 유사하게 보일 것입니다.

apt  auth.log  dpkg  rsyslog

이 파일 이름은 종종 로그가 로테이션되는 서비스 또는 애플리케이션에 해당합니다 (예: 패키지 관리자의 경우 apt, 시스템 로그의 경우 rsyslog).

이러한 구성 파일 중 하나를 자세히 보려면 cat 명령을 다시 사용할 수 있습니다. 예를 들어, apt에 대한 구성을 살펴보겠습니다.

cat /etc/logrotate.d/apt

그러면 apt logrotate 구성 파일의 내용이 표시됩니다. 로테이션할 로그 파일, 빈도, 보관할 이전 로그 수와 같은 apt 로그 파일을 로테이션하기 위한 특정 지시문을 볼 수 있습니다.

/etc/logrotate.d/의 파일을 검사하여 시스템에서 다른 서비스에 대해 로그 로테이션이 어떻게 구성되어 있는지 이해할 수 있습니다.

다음 단계로 이동하려면 **계속 (Continue)**을 클릭하십시오.

logrotate -d 로 logrotate 상태 검사

이 마지막 단계에서는 -d 옵션과 함께 logrotate 명령을 사용하여 "dry run"을 수행하는 방법을 배우게 됩니다. Dry run 은 logrotate가 실제로 수행하지 않고 수행할 작업을 시뮬레이션합니다. 이는 logrotate 구성을 테스트하고 logrotate가 실제로 실행될 때 어떤 일이 일어날지 이해하는 데 매우 유용합니다.

-d 옵션은 "debug" 또는 "dry run"을 의미합니다. 이 옵션을 사용하면 logrotate는 구성 파일을 읽고 수행할 작업을 보고하지만 파일을 수정하거나 로그를 로테이션하지 않습니다.

logrotate는 일반적으로 /var/log와 같은 시스템 디렉토리의 로그 파일에 액세스하고 수정하려면 root 권한이 필요하므로, 필요한 권한으로 logrotate를 실행하려면 sudo 명령을 사용해야 합니다. 이 환경에서 labex 사용자는 암호 없이 sudo 권한을 가지고 있음을 기억하십시오.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

sudo logrotate -d /etc/logrotate.conf

이 명령을 자세히 살펴보겠습니다.

  • sudo: 슈퍼유저 권한으로 명령을 실행합니다.
  • logrotate: 로그 파일을 관리하기 위한 명령줄 유틸리티입니다.
  • -d: dry run(디버그 모드) 을 수행하는 옵션입니다.
  • /etc/logrotate.conf: logrotate가 읽어야 하는 주요 구성 파일입니다.

이 명령의 출력은 매우 상세할 것입니다. logrotate가 고려하는 로그 파일, 해당 파일에 적용되는 구성 지시문, 현재 상태 및 구성에 따라 로테이션이 필요한지 여부를 보여줍니다.

주요 구성 파일과 /etc/logrotate.d/에서 포함된 파일의 처리에 대한 출력을 볼 수 있습니다. 각 로그 파일에 대해 로테이션이 필요한지 여부와 그 이유 (예: 크기, 기간) 를 나타냅니다.

예시 출력에는 다음과 같은 줄이 포함될 수 있습니다.

reading config file /etc/logrotate.conf
including /etc/logrotate.d
reading config file apt
...
rotating pattern: /var/log/apt/term.log /var/log/apt/history.log  weekly
...
considering log /var/log/apt/term.log
  log does not need rotating
considering log /var/log/apt/history.log
  log does not need rotating
...

이 출력은 logrotateapt에 대한 구성을 읽고 현재 로그 파일을 로테이션할 필요가 없다고 결정했음을 확인합니다.

새로운 또는 수정된 logrotate 구성을 배포하기 전에 logrotate -d를 사용하는 것은 로그 파일에 의도하지 않은 문제가 발생하지 않도록 예상대로 작동하는지 확인하는 중요한 단계입니다.

이제 주요 logrotate 구성을 성공적으로 검사하고, 개별 구성 파일을 보고, dry run 을 수행하여 logrotate가 어떻게 동작하는지 확인했습니다.

이 랩을 완료하려면 **계속 (Continue)**을 클릭하십시오.

요약

이 랩에서는 Linux 에서 로그 로테이션이 구성되었는지 확인하는 방법을 배웠습니다. cat 명령을 사용하여 /etc/logrotate.conf에 있는 주요 logrotate 구성 파일을 검사하는 것으로 시작했습니다. 이 단계에서는 로테이션 빈도, 보존 기간, /etc/logrotate.d 디렉토리에서 애플리케이션별 구성 포함과 같은 로그 로테이션에 대한 전역 설정을 보여주었습니다.

주요 구성을 검사한 후에는 일반적으로 /etc/logrotate.d 디렉토리 내의 개별 logrotate 스크립트를 확인하여 특정 애플리케이션의 로그가 어떻게 처리되는지 이해합니다. 마지막으로, logrotate -d 명령을 사용하여 로그 로테이션 상태를 검사하여 dry run 을 수행하고 실제로 변경하지 않고 로그 로테이션이 어떻게 실행되는지 확인하여 구성의 효과를 확인할 수 있습니다.