서버 및 서비스를 관리할 때 로그는 매우 중요한 존재이다.
이러한 로그가 지속적으로 쌓이게 된다면 필요시 로그 확인이 어려워지며
더불어 디스크 용량 또한 낭비가 되기 때문에 로그 관리를 해주는 것이 좋다.
이번에는 로그 관리를 위해서 사용되는 Log Rotate에 대해서 알아보자.
Log Roate는 리눅스 시스템에서 로그를 관리하기 위해서 사용되는 프로그램으로
보통 OS를 설치를 하게 되면 기본적으로 설치가 되어있다.
설치가 되어 있는지 확인하기 위해서 다음과 같이 명령어를 입력한다.
"rqm -qa | grep logrotate"
설치가 되어 있다면 아래와 같이 확인이 된다.
만약 설치가 되어 있지 않다면 다음 명령어를 입력하여 설치를 한다.
"yum -y install logrotate"
설치가 완료되어 설정을 하기 앞서 기본적인 옵션 정보에 대해서 간단하게 알아보자.
* rotate [숫자] : log파일이 5개 이상 되면 삭제 ex) rotate 5
* maxage [숫자] : log파일이 30일 이상 되면 삭제 ex) maxage 30
* size : 지정된 용량보다 클 경우 로테이트 실행 ex) size +100k
* create [권한] [유저] [그룹] : 로테이트 되는 로그파일 권한 지정 ex) create 644 root root
* notifempty : 로그 내용이 없으면 로테이트 하지 않음
* ifempty : 로그 내용이 없어도 로테이트 진행
* monthly(월 단위) , weekly(주 단위) , daily(일 단위) 로테이트 진행
* compress : 로테이트 되는 로그파일 gzip 압축
* nocompress : 로테이트 되는 로그파일 gzip 압축 X
* missingok : 로그 파일이 발견되지 않은 경우 에러처리 하지 않음
* dateext : 백업 파일의 이름에 날짜가 들어가도록 함
다른 옵션이 필요한 경우 "man logrotate" 명령어를 입력하여 정보를 확인할 수 있다.
설정을 하기 위해서 "cd /etc/logrotate.d" 경로로 이동을 하고 관리하고 싶은 로그의 설정 파일을 생성하면 된다.
Apache 로그에 대해서 설정을 해보겠다.
현재 Apache의 로그 디렉터리에는 아래와 같은 로그들이 존재하고 있다.
여기서 파일명이 log로 끝나는 것만 Rotate 설정을 하기 위해서 다음과 같이 설정 파일을 생성한다.
vi /etc/logrotate.d/apache
/app/apache/logs/*log{
weekly
rotate 5
compress
missingok
create 644 root root
dateext
}
정상적으로 동작하기 위해서 강제로 logrotate를 실행해보자.
강제로 실행하기 위해서는 다음과 같이 명령어를 입력하면 된다.
"/usr/sbin/logrotate -f /etc/logrotate.conf"
실행결과를 확인해보니 아래와 같이 정상적으로 동작하는 걸 확인할 수 있다.
logrotate를 자동으로 관리하기 위해서 cron을 이용하여 주기적으로 관리할 수 있다.
cron에 등록하기에 앞서 형식에 대해서 알아보자.
"(분) (시) (날짜) (달) (요일) (작업)"
매주 일요일 자정에 진행을 하고 싶으면 다음과 같이 입력을 하면 된다.
crontab -e
00 00 * * 7 /usr/sbin/logrotate -f /etc/logrotate.conf
정상적으로 동작은 지 확인하기 위하여 시간을 변경하여 확인해보자.
정상적으로 cron이 동작하여 logrotate가 동작하는 걸 확인할 수 있다.
[Linux] IP 설정 (0) | 2019.08.07 |
---|---|
[Linux] tar 명령어 (0) | 2018.06.29 |
[Windows] FTP 없이 파일 전송 방법 (0) | 2018.06.27 |
[Linux] History 명령어 (0) | 2018.06.25 |
[Linux] yum 사용방법 및 resolve 에러 해결방법 (0) | 2017.07.25 |