공유할 서비스 선택

TECH


TECH

OS [Linux] Logrotate 설명 및 설정 방법

페이지 정보

작성자 LeeHyongDong 아이디로 검색 전체게시물 댓글 0건 조회 15,795회 좋아요 0회 작성일 20-04-06 15:04

본문

- Logrotate 설명 및 설정 방법

 

소개

  • Logrotate의 기능은 기본적으로 log가 많이 쌓이게 되는걸 방지하기 위해 주기적으로 log를 삭제 및 정리하는 기능을 갖고있습니다

 

환경

  • RHEL/CentOS 8이상

  • RHEL/CentOS 7이상

 

구성

  74bf8f70bca9fb0375dde72ac319c8b4_1586149506_7694.png 

  서버를 운영하게 되면 쌓이는 로그를 주기적으로 정리해 줍니다.

 

이슈

  • Logrotate를 사용하지 않으면 log가 계속 쌓여 disk에 과부하를 줄수 있습니다.

 

1. logrotate 설정 방법

 

  1.1. 설정 방법

    Logrotate는 기본적으로 log의 정리를 목적으로 하고있습니다.

    Logrotate는 RHEL/CentOS에서 최소 설치로 진행해도 Logrotate는 설치가 됩니다.

    필요가 없어 지우지 않는 이상 설치가 되어있습니다.

  

  1.2. 옵션

    Logrotate는 많은 옵션이 있으며 주로 사용하는 옵션을 간추려 설명 드리겠습니다.

 

    • yearly, monthly, weekly, daily 주기 옵션으로 로테이트를 실행할때 로그를 어떤 주기로 로테이트를 할지 선택

 

    • rotate [숫자] 로그파일의 개수가 숫자이상이면 가장 오래된 로그파일을 삭제합니다.

 

    • create [권한] [유저] [그룹] 로테이트 될때 생성되는 로그파일 권한 및 소유자 지정

  

    • notifempty 로그 내용이 없으면 로테이트를 실행하지 않음 이와 반대로

    • ifempty는 로그 내용이 없어도 로테이트를 진행

   

    • compress 로테이트로 생성되는 로그파일 gzip으로 압축생성

     nocompress 로테이트로 생성되는 로그파일을 압축하지 않고 생성

 

    • missingok 로그파일을 발견하지 못해도 에러처리 하지 않음

 

    • dateext 로테이트 파일의 이름에 날짜가 들어가도록 생성

 

    • size [숫자 K,M,G] 로그 파일이 크기가 설정보다 커지면 로테이트 실행

 

    • maxage [숫자] 파일이 지정일 이상되면 삭제

 

    • postrotate 실행후 스크립트 파일 실행

     endscript 스크립트를 실행하는 옵션 다음에 들어가야하는 옵션

 

  1.3. Logrotate의 파일구조

   - Logrotate의 파일 경로

74bf8f70bca9fb0375dde72ac319c8b4_1586151732_1647.png
    로테이트를 진행할때 logrotate.conf파일에서 기본 설정을 확인하고 logrotate.d 디렉토리 내부에 존재하는

    설정 파일을 진행합니다. 원하는 Logrotate의 추가는 logrotate.d 디렉토리 내부에 생성합니다

 

    logrotate.conf의 내용입니다.

   


# see "man logrotate" for details
# 매주 로그파일을 로테이트
weekly
# 4개의 로그파일 이상이면 가장 오래된 로그파일을 삭제합니다.
rotate 4
# 로그파일을 정리하고 오래된 로그파일을 생성할지 여부
create
# 로테이트후 로그파일 뒤에 날짜를 추가합니다
dateext
# 로그파일을 로테이트한후 압축파일로 생성
#compress
# 디렉토리를 지정하여 logrotate파일을 사용가능합니다
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}
 
/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}


 

    logrotate.d 내부에 생성할때 예시입니다

   


/var/log/netdata/*.log {    # 로테이트 경로
        daily                # 로테이트 주기
        missingok            # 로그파일이 없어도 에러처리 안함
        rotate 14            # 로그파일의 개수가 14개 이상이면 가장 오래된 로그파일을 삭제합니다.
        compress            # 로테이트 파일 압축
        notifempty            # 로그가 빈경우 로테이트 진행 하지않음
        sharedscripts        # 로그파일이 여러개여도 스크립트를 한번만 진행 
        postrotate            # 로테이트를 진행후 스크립트 실행
                /bin/kill -HUP `cat /var/run/netdata/netdata.pid 2>/dev/null` 2>/dev/null || true
        endscript            # postrotate 종료 선언
}

 

    위 설정에 의해 생성된 로그입니다.

   - 로그 생성 확인

   74bf8f70bca9fb0375dde72ac319c8b4_1586153097_7918.png 

 

   예시처럼 conf파일에서 weekly로 설정을 했지만 logrotate.d 내부에 있는 파일은 daily로 설정을 넣어 매일 로그가 생성이 되고

   14개의 로그가 생성되면 이전에 있던 로그파일은 삭제가 됩니다.

 

    - logrotate.d 파일

    74bf8f70bca9fb0375dde72ac319c8b4_1586154758_3601.png 

    OS가 설치되면서 자동으로 생성되는 logrotate파일에 의해 기본적으로 logrotate가 실행됩니다.

 

    - log 파일

    74bf8f70bca9fb0375dde72ac319c8b4_1586154716_945.png 

    logrotate에 의해 로그가 생성되고 삭제 됩니다.

 

2. logrotate 명령어

환경

  - test 로테이트

  74bf8f70bca9fb0375dde72ac319c8b4_1586156328_6943.png 

 

  2.1. logrotate 디버그

    - logrotate -d

    74bf8f70bca9fb0375dde72ac319c8b4_1586156260_6217.png
    logrotate -d 로테이트 파일이 문제 없는지 확인

  2.2. logrotate 실행

    - logrotate -f 

    74bf8f70bca9fb0375dde72ac319c8b4_1586155449_8896.png 

    logrotate -f [경로] 를 즉시 로테이트 실행

 

    2.3. logrotate 확인

    - logrotate -v

    74bf8f70bca9fb0375dde72ac319c8b4_1586156396_3888.png 

    logrotate 의 실행 과정 확인

 

3. 유사한 설정

crontab 관련 문서도 작성 예정

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
153 Middleware 미들웨어 아이디로 검색 전체게시물 06-12 942
(Oracle Cloud) OCI 자격증 접수 및 문제유형 "OCI Foundation" -1

카테고리 : Middleware

942 0
작성자 : 미들웨어 23/06/12
152 Middleware 미들웨어 아이디로 검색 전체게시물 05-23 820
(오픈소스 활용-20) apache, nginx (prefork & worker) 방식에 따른 MaxClient 적용방법

카테고리 : Middleware

820 0
작성자 : 미들웨어 23/05/23
151 OS leechanho 아이디로 검색 전체게시물 05-23 1059
[쉘스크립트] RHEL8 리눅스 보안설정 자동화 스크립트

카테고리 : OS

1,059 0
작성자 : leechanho 23/05/23
150 Middleware 미들웨어 아이디로 검색 전체게시물 05-10 2085
(오픈소스 활용-19) MobarXTerm 을 활용한 GUI(X11) 실행방법

카테고리 : Middleware

2,085 0
작성자 : 미들웨어 23/05/10
149 OS leechanho 아이디로 검색 전체게시물 04-24 889
[Linux] RHEL-HA_운영 메뉴얼

카테고리 : OS

889 0
작성자 : leechanho 23/04/24
148 Middleware 미들웨어 아이디로 검색 전체게시물 04-24 812
(오픈소스 활용-18) VSCODE 설치 및 GIT 활용 연동 가이드

카테고리 : Middleware

812 0
작성자 : 미들웨어 23/04/24
147 Middleware 미들웨어 아이디로 검색 전체게시물 04-05 1106
(오픈소스 활용-17) 로컬 및 URL 호출 테스트 옵션 (curl, ab 옵션으로 부하주기)

카테고리 : Middleware

1,106 0
작성자 : 미들웨어 23/04/05
146 Middleware 미들웨어 아이디로 검색 전체게시물 03-20 608
(오픈소스 활용-16) Jstack을 활용하여 CPU급등한 프로세스 파일로 떨구기

카테고리 : Middleware

608 0
작성자 : 미들웨어 23/03/20
145 OS leechanho 아이디로 검색 전체게시물 03-15 2149
[쉘스크립트] 리눅스 시스템 정보수집 스크립트

카테고리 : OS

2,149 1
작성자 : leechanho 23/03/15
144 Middleware 미들웨어 아이디로 검색 전체게시물 03-08 1058
(Monitoring) Jennifer & Slack 연동 구성방법 (이벤트 발생 확인)

카테고리 : Middleware

1,058 0
작성자 : 미들웨어 23/03/08
Total 203건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top