강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터1급 : 아파치(Apache) 운영팁- 로그 로테이트 방법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 아파치(Apache) 운영팁- 로그 로테이트 방법

 

 

 

 

 

자꾸만 쌓여가는 로그를 효율적으로 관리하기 위해 그림파일을 제외하고 로그를 남기는 방법을 설명했었다.

 

 

 

그렇게 설정을 하면 늘어나는 로그의 양이 줄어들기는 하지만, 시간이 지나면 많아지는 것은 막을 방법이 없다.

 

 

 

 

로그 파일을 효율적으로 보관, 관리하기 위해 특정 시간이 지났을 때 오래된 로그 파일은 보관하고 새로운 로그 파일을 생성 시켜 로그를 남기며, 특정 기간 또는 개수 이상된 로그파일은 삭제 하도록 설정할 수 있다.

 

 

 

 

 

쉘 스크립트 활용

원하는 방법으로 로그를 로테이트 시키기 위해 다음과 같은 쉘 스크립트를 이용할 수 있다.

 

 

 

다음 쉘 스크립트 파일을 작성한다.

 

 

 

 

 

/root/weblog_rotate.sh

 

 

 

 

 

#!/bin/bash

## 로그 자동 로테이터

## crontab : 00 00 * * * su - root -c '/root/weblog_rotate.sh >& /dev/null'

 

## 어제날짜

TODAY=`/bin/date -d '1 days ago' '+%Y-%m-%d'`

#### 로그 파일에 어제 날짜를 붙여 보관

/bin/mv /usr/local/apache/logs/access_log \

/usr/local/apache/logs/access_log.$TODAY

/usr/local/apache/bin/apachectl restart

## 로그를 압축해서 보관한다.

 

 

 

 

/bin/gzip /usr/local/apache/logs/access_log.$TODAY

 

 

 

 

 

 

크론탭에 등록한다.

 

 

 

 

 

 

 

 

 

crontab -e

 

 

 

 

 

 

크론 편집모드로 진입하고 아래 내용을 붙여 넣는다.

 

 

 

 

 

 

 

 

 

0 0 * * * /root/weblog_rotate.sh

 

 

 

 

 

위와 같은 방법으로 작성해 두면, 매일 00분에 작동하여 지난 로그를 자동으로 날짜를 붙여 보관하며, 공간 확보를 위해 압축을 하게 된다.

 

 

 

로그 확인시 zcat등의 명령어로 확인하면 쉽게 확인할 수 있다.

 

 

 

 

 

rotatelogs 프로그램 활용

 

 

아파치에서 제공해 주는 기본 프로그램(rotatelogs)를 사용한다.

 

 

 

 

 

 

 

 

TransferLog "| /usr/local/apache/bin/rotatelogs logs/access 86400"

 

 

 

 

 

 

 

위 설정은 하루(86400)마다 로그를 로테이트 하게 된다.

 

 

 

로그를 분산하기 위해 별도의 프로그램을 사용하며, 항상 프로세스가 떠 있다.

 

 

 

남겨지는 파일을 보고 로그 날짜를 확인하는 것이 어렵다는 단점이 있다.

 

 

 

 

 

logrotate(로그로테이터) 이용

 

 

리눅스 시스템의 로그를 효율적으로 관리하기 위한 logrotate를 이용하여 웹로그를 효율적으로 보관할 수 있다.

 

 

 

다음 파일을 생성한다.

 

 

 

 

 

/etc/logrotate.d/http

 

 

 

 

 

/usr/local/apache/logs/access_log {

daily

rotate 30

size=102400k

postrotate

/usr/local/apache/bin/apachectl restart

endscript

}

 

 

 

 

 

 

 

위와 같이 작성하면 매일 로그를 로테이트 하며, 지난 로그는 30개를 보관한다.

 

 

 

로그 파일의 크기가 100M이상 일 때도 로그를 로테이트 하게 된다.

 

 

 

오래된 로그는 자동으로 삭제된다는 장점은 있지만, 남겨지는 로그의 날짜와 파일명의 연관성이 없어 날짜별 로그 찾기가 힘든 단점이 있다.

 

 

 

 

 

이 처럼 로그를 효율적으로 관리하는 방법은 여러 가지가 있다.

 

 

 

상황에 맞는 방법을 선택하여 사용하면 된다.

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  103 명