공유할 서비스 선택

TECH


TECH

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

페이지 정보

작성자 LeeHyongDong 아이디로 검색 전체게시물 댓글 0건 조회 15,747회 좋아요 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 목록
번호 제목 작성자 작성일 조회수
192 OS OSworker 아이디로 검색 전체게시물 02-19 376
[질문] free 메모리에서 Used가 너무 높게 나오는데, ps 명령어에는 사용율이 없습니다.

카테고리 : OS

376 0
작성자 : OSworker 24/02/19
191 Middleware 미들웨어 아이디로 검색 전체게시물 02-06 360
(AI-1) Chat-GPT 4All - PC 설치 방법

카테고리 : Middleware

360 0
작성자 : 미들웨어 24/02/06
190 OS OSworker 아이디로 검색 전체게시물 02-05 410
1월31일에 발표된 보안취약점 CVE-2024-21626에 대해 알아보겠습니다.

카테고리 : OS

410 0
작성자 : OSworker 24/02/05
189 OS OSworker 아이디로 검색 전체게시물 01-31 417
OS 백업 아직도 3rd part 사용하시나요? 이제는 OS 에 포함된 ReaR 사용해보세요~!

카테고리 : OS

417 0
작성자 : OSworker 24/01/31
188 OS OSworker 아이디로 검색 전체게시물 01-23 279
Red Hat 업무별 직군들에 대해 알아보겠습니다. #AM #GPS #TSE #TAM

카테고리 : OS

279 0
작성자 : OSworker 24/01/23
187 Middleware 미들웨어 아이디로 검색 전체게시물 01-19 192
(오픈소스 활용-26) scouter 2.22 에서 Weblogic14 모니터링 등록 중 이슈 조치방법

카테고리 : Middleware

192 0
작성자 : 미들웨어 24/01/19
186 OS OSworker 아이디로 검색 전체게시물 01-15 652
[보안취약점] OpenSSH 보안이슈 `cve-2023-48795`

카테고리 : OS

652 0
작성자 : OSworker 24/01/15
185 Middleware 미들웨어 아이디로 검색 전체게시물 01-06 288
(오픈소스 활용-25) scouter 2.22 에서 JEUS8 모니터링 등록 하는 방법

카테고리 : Middleware

288 0
작성자 : 미들웨어 24/01/06
184 OS OSworker 아이디로 검색 전체게시물 12-30 227
Red Hat z-stream 패키지를 어떻게 구분하나요? 또 z-stream이란 무엇인가요?

카테고리 : OS

227 0
작성자 : OSworker 23/12/30
183 OS OSworker 아이디로 검색 전체게시물 12-24 320
[issue] RHEL8 버전 설치시 swap 이 최대 128G 까지만 된다?

카테고리 : OS

320 0
작성자 : OSworker 23/12/24
Total 202건
게시물 검색

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