차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
tech:logrotate [2013/09/16 00:25] – 새로 만듦 V_Ltech:logrotate [2019/03/28 05:50] (현재) – [Logrotate] V_L
줄 1: 줄 1:
 +{{tag>logrotate 우분투 리눅스 linux ubuntu}}
 +======Logrotate======
 +
 +logrotate는 시스템에 있는 모든 로그파일들을 관리할 수 있으며 이들 로그파일들을 자르고(rotate), 보관하고, 삭제하고, 압축하고, 메일로 보내주는 등의 작업을 할 수 있게 한다.
 +
 +구체적인 예를 들자면, 아파치 웹서버에서 방문기록을 저장하고 있는 웹로그파일은 access_log이다. (물론 이파일의 이름과 위치는 얼마든지 바꾸어 사용할 수 있다. )
 +
 +이 파일은 하루에도 엄청나게 많은 용량으로 저장이 된다. 이런 파일을 그냥 두게되면 얼마가지 않아서 할당된 파티션에 파일시스템풀(Filesystem Full)이 나서 시스템이 다운이 될 수가 있다. 특히, 웹호스팅서버와 같이 하나의 서버에 여러개의 웹사이트를 운영되는 서버에는 매우 심각하다고 할 수 있다.
 +
 +
 +logrotate는 이런 cron에 의해 주기적으로 이런작업을 훌륭히 수행해 낸다.
 +
 +
 +
 +
 +
 +logrotate는 리눅스가 설치되면서 대부분 기본적으로 패키지형태로 설치가 된다.
 +
 +
 +<file>
 +/usr/sbin/logrotate   데몬의 위치 및 데몬프로그램
 +/etc/logrotate.conf 데몬 설정파일
 +/etc/logrotate.d   logrotate에 적용할 각종로그파일들 보관하는 디렉토리
 +/var/lib/logrotate.status    logrotate한 작업내역을 보관한 파일
 +/etc/cron.daily/logrotate     주기적으로 실행이되어야하므로 cron에 의해 일단위로 실행이 됨
 +</file>
 +
 +
 +
 +먼저, /usr/sbin/logrotate는 logrotate의 데몬프로그램이다. crond에 의해 주기적으로 실행이 되는 프로그램이다 .
 +
 +/etc/logrotate.conf파일은 logrotate가 실행이되면서 읽어들인후 각각의 로그파일들을 이 파일의 설정에 의하여 자르거나(rotate), 삭제하거나, 압축을 하게된다.
 +
 +/etc/logrotate.d 파일은 각각의 로그파일들에 대한 개별적인 설정파일들이 존재하는 디렉토리이며, 추가로 적용할 로그파일에 대한 설정을 여기서 하면된다. 예를 들어 보안체크를 위해 tripwire를 설치하였다면 이프로그램의 로그파일이 존재할 것이다. 따라서 이 로그파일의 관리를 위해서 이 디렉토리에 적당한 이름의 파일을 생성하고 원하는 설정을 하여 logrotate에 의해 관리되게끔 하면 된다.
 +
 +
 +=====logrotate.conf 샘플=====
 +
 +logrotate의 설정디렉토리 /etc/logrotate.d/에 있는 여러개의 파일중 syslog파일의 일부이다.
 +
 +물론, 이 설정을 /etc/logrotate.conf 파일내에 있어도 마찬가지 결과를 얻을 수 있다.
 +
 + 
 +
 +위의 설정을 설명하면 다음과 같다.
 +
 +/var/log/messages  
 +대상로그파일, 즉, logrotate에 의해서 작업될 로그파일을 절대패스로 지정해둔 것이다. 
 +그리고, 그 다음의 "{" 부터 "}"까지는 이 로그파일에 대한 개별적인 설정이 된다.
 +
 +monthly
 +대상로그파일(/var/log/messages)을 순환시킬 주기이며, monthly이므로 한달에 한번씩 이 파일이 순환(rotate)되게 된다. 
 +뒤에서 설명하게되겠지만 참고로 순환주기에는 daily, weekly, monthly등이 있다. 이에 대한 설명은 뒤에서 자세히 다루게 된다.
 +
 +compress
 +순환(rotate)된 파일이 gzip에 의해서 압축이 된다. 반대의 옵션은 nocompress이며 압축을 하지 않게 된다.
 +(기우겠지만, 순환되어 새로 생성되어 저장되고 있는 로그파일은 압축이 되지 않는다.)
 +
 +rotate 2
 +순환되는 파일갯수를 지정한다. 0부터 시작하게되며 위의 예에서 monthly로 지정했기 때문에 2달간 로그파일이 저장되어 있게된다.
 +
 +mail  
 +순환되어 지정된 갯수를 지나게되는 로그파일은 지정된 메일주소로 메일로 보내지게 된다. 
 +메일을 보내지 않으려면 nomail이라고 하면 된다.
 +
 +errors 
 +지정된 log파일의 logrotate작업시에 에러가 발생을 하면 지정된 메일주소로 메일을 발송하게 된다. 
 + 
 +
 +postrotate/endscript
 +이것은 지정된 로그파일에 logrotate작업이 끝나고 난 이후에 실행할 작업을 설정해둔 것이다. 
 +대부분 이부분에 설정되는 작업은 rotate된 로그파일의 데몬을 재시작시키는 작업이다. 
 +반대의 작업을 하려면 즉, logrotate작업 전에 실행할 작업이 있다면
 +postrotate/endscript대신에 prerotate/endscript를 사용하면 된다.
 +
 + 
 +^  누구나 수정하실 수 있습니다. [[http://vaslor.net/syntax|위키 사용법]] 참고하세요.  ^
 +
 +