본문 바로가기
OS/Linux

[Linux] Logrotate 이용한 로그 관리하기

by 선인장 🌵 2022. 1. 30.
728x90
728x90

Logrotate 이용한 로그 관리

Linux(리눅스)에서 로그 관리를 위해 기본적으로 Logrotate를 사용한다.

그럼 간단하게 Logrotate가 무엇이고, 어떻게 설정하는지 알아보도록 하자.

[Linux] Logrotate 이용한 로그 관리하기

1. Logrotate란?

로그(Log) 파일을 압축, 삭제, 메일링, 권한 등 설정하여 쉽게 관리할 수 있도록 사용되는 Linux 시스템 명령어이다.

Logrotate를 사용하는 이유는 여러 가지가 있겠지만 그중 제일 큰 부분은 분할과 용량 때문이다.

첫 번째로는 한 개의 파일에 계속적으로 로그들을 쌓는다면 일단 파일을 여는 것부터 문제가 된다.

만약 파일을 열었다고 해도 파일 내에 많은 로그가 저장되어있기에 원하는 걸 찾기도 쉽지 않다.

Logrotate 설정으로 분할하여 저장된다면 파일의 용량도 적을 뿐 아니라 일자에 맞게 저장이 되어 검색도 용이할 것이다.

두 번째로는 분할을 하여 계속 저장하는 경우 무제한적으로 저장을 할 수가 없다.

그런 부분에 대해서 특정 일자까지만 저장하고 삭제를 할 수 있도록 설정할 수 있다.

이런 여러 이유가 있어 Logrotate를 이용해서 로그를 쉽게 관리가 가능하다.

728x90

2. 설정 파일

그럼 이번에는 Logrotate의 설정 파일들을 알아보자.

  1. /usr/sbin/logrotate
    • Logrotate 파일 위치
  2. /etc/logrotate.conf
    • Logrotate 설정 파일
  3. /etc/logrotate.d/*
    • Logrotate로 구동되는 각 애플리케이션들의 설정 파일
  4. /var/lib/logrotate/logrotate.status
    • Logrotate가 구동된 Log 파일
  5. /etc/cron.daily/logrotate
    • Logrotate가 Daily Cron을 이용한 구동 설정
728x90

3. 애플리케이션의 설정 예시

간단하게 HTTP(Apache)의 로그에 대해서 Logrotate 설정하는 방법을 알아보자.

$ cat /etc/logrotate.d/http

/var/log/httpd/*log {                 <- 프로그램의 로그 위치

    daily                             <- logrotate 기간(daily , weekly, monthly)

    rotate 90                         <- log 삭제

    create 644 root root              <- log 생성 권한 및 계정:그룹

    missingok                         <- log 파일 누락시 오류 메세지 발생 

    notifempty                        <- log 내용 없을 경우 logrotate 미구동 

    compress                          <- rotate된 log 파일 압축

    sharedscripts          

    postrotate

        /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true  

 endscript

}

4. 참고 문서

  1. http://www.linuxcommand.org/man_pages/logrotate8.html
  2. https://support.rackspace.com/how-to/understanding-logrotate-utility/
728x90
728x90


🌵댓글

 

loading