본문 바로가기
CentOS and Redhat Linux/보안설정

(CentOS7) 리눅스 Logrotate 기능(1)

by 미니몬 2023. 7. 14.

목차

    728x90
    반응형

    Summary

    이 게시물에서는 CentOS7 버전의 서버에서 Logrotate 의 개념과 주요기능을 설명하고 있습니다.

    기능을 적용하기 전 알고있어야 하는 내용을 작성했습니다. logrotate 기능을 제대로 이해하여

    바로 적용하고자 하시는 분들은 아래 링크를 클릭해주세요.

     

    [CentOS and Redhat Linux] - (CentOS7) 리눅스 Logrotate 기능(2)

    (CentOS7) 리눅스 Logrotate 기능(2) :: Mini Computing Chronicle (tistory.com)

     

     

     

    What  is Logrotate?

    Logrotate 는 CentOS7 서버에서 특정 로그 파일을 관리하는 도구입니다.

    최근 보안이슈로 인하여 기업체에서 사용되는 서버에 logrotate 기능을 많이 설정하고 있습니다.

     

    이 기능은 로그 파일의 보관 기간을 지정하기도 하고, 파일 하나의 사이즈도 지정하여 

    일정 시간이나 일정 사이즈가 넘는 파일을 백업해주는 기능입니다.

    자동으로 압축해주는 설정도 있으니 필요시 적용하면 디스크 공간을 효율적으로 사용할 수 있습니다.

     

     

     

    How does the logrotate function work?

    Logrotate의 주요 기능은 다음과 같습니다:

    • 파일 관리 : 지정된 로그 파일 경로에 대해 로그 파일의 크기나 날짜에 따라 로그 파일을 관리
    • 파일 압축: 설정된 주기에 따라 오래된 로그 파일을 압축하여 디스크 공간을 절약
    • 파일 보존 : 설정된 기간 동안 로그 파일을 보존하고 오래된 로그 파일을 삭제
    • 파일의 권한 및 소유자 변경 : 로그 파일의 권한 및 소유자를 변경하여 보안 및 접근성을 관리

     

     

    1. Logrotate 기능과 관련된 디렉터리 및 파일의 위치

      ※ 만약 설치되어 있지 않다면 'yum install logrotate' 명령으로 설치해주세요

    • logrotate 실행 파일 : /usr/sbin/logrotate
    • logrotate 기능 수동 실행 명령 : /usr/sbin/logrotate -f /etc/logrotate.d/apache
    • logrotate 수행 로그 : /var/lib/logrotate/logrotate.status

     

     

    2. 동작 구조에 대한 설명

    • Cron.daily 파일에 등록되어 매일 logrotate 실행
    • /etc/logrotate.conf 참조하여 logrotate 실행
    • logrotate.conf 파일에서 /etc/logrotate.d/* 파일 참조(logrotate.conf 파일안에 "include /etc/logrotate.d" 지정시)
    • /var/lib/logrotate/logrotate.status 실행 로그 남김

     

     

    3. /etc/logrotate.conf 옵션 설명

      옵션 설명
    회전 주기 yearly

    monthly

    weekly

    daily
    [rotate 진행 주기를 지정]

    yearly : 매년
    monthly : 매월
    weekly : 매주
    daily : 매일
    파일 개수 rotate [숫자] [파일의 저장 개수를 지정]

    ex) rotate 4
     파일이 4개 까지 생성되며, 이후 부터는 오래된 파일 제거 후 생성
    파일에 날짜지정
    (YYYYMMDD)
    dateext [rotate 설정된 파일명에 날짜를 지정]

    ex) messages 파일에 dateext 지정된 경우 아래와 같이 생성
     messages.20200101
     messages.20200201
     ...
    압축 여부 compress [rotate 된 파일을 gzip 형태로 압축]
    size 지정 size 10K/M/G [파일 사이즈가 커지면 rotate 수행]

    ex) size 10M
     파일 사이즈가 10M 이상이 되면, 회전 주기와 무관하게
     Cron.daily 동작이 실행될 때 rotate 수행.
    파일 사이즈에 따라 rotate 여부 notifempty

    ifempty
    [파일 사이즈가 0인 경우 rotate 수행 여부 지정] 
    notifempty : 파일의 사이즈가 0이면 rotate 수행하지 않음

    ifempty : 파일의 사이즈가 0이어도 rotate 수행
    에러메시지 제거 missingok [rotate 실행할 때 파일이 없는 경우에 발생하는 에러메시지 미출력]
    rotate 실행 전/후 동작 prerotate /
    endscript 

    postrotate /
    endscript
    prerotate / endscript : 실행 전 스크립트 실행

    postrotate / endscript : 실행 후 스크립트 실행

     

     

    Conclusion

    이 블로그 게시물에서는 CentOS7 버전에서 Logrotate 기능에 대해 설명했습니다.

    이를 통하여 원하는 기간의 log 파일 저장이 가능하도록 설정할 수 있습니다.

    설정하는 방법이 궁금하신 분은 아래 링크를 확인해주세요.

    728x90
    반응형