리눅스

Total 331
Today 0
profile_image
관리자
07-08-29 11:15 0개 10회
일반문서
logrotate 로 로그 파일 관리하기
1. logrotate 개론

앞선강좌에서 누차 강조드린 바와 같이 리눅스뿐아니라 거의 모든 운영체제에서는 로그파일의 종류와 그 크기를 어떻게 보관하고 관리할 것인가에 대한 것이 아주중요하게 다루어지고 있다.

 logrotate는 이에 대한 해답을 주는 유틸리티라고 할 수 있다.

즉, logrotate는 시스템에 있는 모든 로그파일들을 관리할 수 있으며 이들 로그파일들을 자르고(rotate), 보관하고, 삭제하고, 압축하고, 메일로 보내주는 등의 작업을 할 수 있게 한다.

구체적인 예를 들자면, 아파치 웹서버에서 방문기록을 저장하고 있는 웹로그파일은 access_log이다. (물론 이파일의 이름과 위치는 얼마든지 바꾸어 사용할 수 있다. )

이 파일은 하루에도 엄청나게 많은 용량으로 저장이 된다. (물론 어느정도의 방문자가 있다는 조건에서)

필자가 관리하는 수퍼유저코리아의 웹서버만 하더라도 하루에 약 33MB정도의 용량으로 저장이 된다.

그렇다면 한달이면 약 990MB, 그러니까 약 1GB정도가 조금 들 필요하다고 할 수 있을 것이다.

이런 파일을 그냥 두게되면 얼마가지 않아서 할당된 파티션에 파일시스템풀(Filesystem Full)이 나서 시스템이 다운이 될 수가 있다.

특히, 웹호스팅서버와 같이 하나의 서버에 여러개의 웹사이트를 운영되는 서버에는 매우 심각하다고 할 수 있다.

 

더군다나 서버에는 웹로그만 있는 것이 아니고 앞선강좌에서 설명드렸듯이 리눅스의 기본적인 로그파일만 10여개가 넘는다.

이런 로그파일들을 적당한 크기로 자르고(rotate), 압축하여, 보관하거나, 삭제하는등의 작업이 주기적으로 필요하게된다.

 

logrotate는 이런 cron에 의해 주기적으로 이런작업을 훌륭히 수행해 낸다.

바로 여기에 logrotate의 역할과 필요성이 존재한다고 볼 수 있으며 logrotate가 개발된 이유이기도 하다.


2. logrotate 파일구성

logrotate는 리눅스가 설치되면서 대부분 기본적으로 패키지형태로 설치가 된다.

logrotate의 데몬과 설정파일들을 살펴보면 다음과 같다.

 
데몬(위치) : /usr/sbin/logrotate :  데몬의 위치 및 데몬프로그램
 
데몬 설정파일 :  /etc/logrotate.conf : 설정파일

설정디렉토리 : /etc/logrotate.d : logrotate에 적용할 각종로그파일들 보관하는 디렉토리
 
상황파일 :  /var/lib/logrotate.status :  logrotate한 작업내역을 보관한 파일
 
cron(일단위) : /etc/cron.daily/logrotate :  logrotate는 주기적으로 실행이되어야하므로 cron에 의해 일단위로 실행이 됨
 

먼저, /usr/sbin/logrotate는 logrotate의 데몬프로그램이다. crond에 의해 주기적으로 실행이 되는 프로그램이다 .

/etc/logrotate.conf파일은 logrotate가 실행이되면서 읽어들인후 각각의 로그파일들을 이 파일의 설정에 의하여 자르거나(rotate), 삭제하거나, 압축을 하게된다.

/etc/logrotate.d 파일은 각각의 로그파일들에 대한 개별적인 설정파일들이 존재하는 디렉토리이며, 추가로 적용할 로그파일에 대한 설정을 여기서 하면된다. 예를 들어 보안체크를 위해 tripwire를 설치하였다면 이프로그램의 로그파일이 존재할 것이다. 따라서 이 로그파일의 관리를 위해서 이 디렉토리에 적당한 이름의 파일을 생성하고 원하는 설정을 하여 logrotate에 의해 관리되게끔 하면 된다.

마지막으로 /etc/cron.daily/logrotate 파일은 주기적으로 실행이 될 logrotate를 cron에 넣어둔 것이다.

즉, 이 cron설정으로 인해 logrotate는 하루에 한번씩 주기적으로 실행이 될 수 있는 것이다.

댓글목록

등록된 댓글이 없습니다.