공유할 서비스 선택

TECH


TECH

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

페이지 정보

작성자 LeeHyongDong 아이디로 검색 전체게시물 댓글 0건 조회 1,041회 좋아요 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 목록
번호 제목 작성자 작성일 조회수
41 Middleware 미들웨어 아이디로 검색 전체게시물 06-06 684
(Nginx-3) Nginx 사용하는 옵션 정리 3_(health-check)

카테고리 : Middleware

684 0
작성자 : 미들웨어 20/06/06
40 Middleware 미들웨어 아이디로 검색 전체게시물 05-15 1600
(Nginx-2) Nginx 사용하는 옵션 정리 2_(proxy_pass & upstream)

카테고리 : Middleware

1,600 0
작성자 : 미들웨어 20/05/15
39 Middleware 미들웨어 아이디로 검색 전체게시물 05-10 1108
(Nginx-1) Nginx 설치 및 컴파일 방법

카테고리 : Middleware

1,108 0
작성자 : 미들웨어 20/05/10
38 OS LeeHyongDong 아이디로 검색 전체게시물 04-28 1444
[Linux] Network Bonding 설명 및 구성

카테고리 : OS

1,444 0
작성자 : LeeHyongDong 20/04/28
37 Middleware 미들웨어 아이디로 검색 전체게시물 04-21 1239
(JBoss & Wildfly) 기동, 다운 스크립트 생성 방법 (standalone.sh, domain.sh)

카테고리 : Middleware

1,239 0
작성자 : 미들웨어 20/04/21
36 Middleware 미들웨어 아이디로 검색 전체게시물 04-21 1420
(JBoss & Wildfly) standalone-ha.xml 를 사용한 Cluster 구성 방법

카테고리 : Middleware

1,420 0
작성자 : 미들웨어 20/04/21
35 Middleware 미들웨어 아이디로 검색 전체게시물 04-07 1172
(Tomcat) 튜닝가이드 공개

카테고리 : Middleware

1,172 0
작성자 : 미들웨어 20/04/07
34 Middleware 미들웨어 아이디로 검색 전체게시물 04-07 1074
(Apache) 튜닝 가이드 공개

카테고리 : Middleware

1,074 0
작성자 : 미들웨어 20/04/07
33 Middleware 미들웨어 아이디로 검색 전체게시물 04-07 1283
(Apache, Tomcat) 로드밸런싱 구성

카테고리 : Middleware

1,283 0
작성자 : 미들웨어 20/04/07
열람중 OS LeeHyongDong 아이디로 검색 전체게시물 04-06 1042
열람중
[Linux] Logrotate 설명 및 설정 방법

카테고리 : OS

1,042 0
작성자 : LeeHyongDong 20/04/06
Total 71건
게시물 검색

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