Posted on 2004/03/03 13:03
Filed Under 리눅스기술문서/서버관련 조회수:

Red Hat Linux 시스템에서 로그파일 관리
-------------------------------------

작성자 : 정병환
(http://bhcom34.kr1.net, bhcom34 at chollian.net, bhcom34 at orgio.net)

작성일 : 2000/09/22

참고자료
http://kldp.org/KoreanDoc/Log_Admin-KLDP
man logrotate
man syslogd.conf


o 들어가며

기본적으로 레드햇 리눅스는 logrotate, syslogd 패키지가 설치되어 있다.
syslogd 패키지는 시스템 로그를 기록하는 데몬패키지이며, logrotate는
로그파일을 일정기간간격으로 처리해주는 프로그램이다.
기본적인 내용은 kldp에 있으며, 이 문서는 간략한 개념정리를 하는 마음으로
적었다.


1. 설정 파일

o syslog : /etc/syslog.conf
o logrotate : /etc/logrotate.conf, /etc/logrotate.d/ 아래의 파일들



2. 설정

o syslog 설명은 여기에서 제외함 (kldp.org 참고하기 바람)

o logrotate
logrotate는 /etc/cron.daily/에서 하루에 한번씩 cron 데몬에 의해 실행되고 있다.
이 스크립트의 내용은 /etc/logrotate.conf 파일을 읽어들여서 수행을 한다.
다음은 처음 설치시 설정된 logrotate.conf 파일의 내용이다.

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# send errors to root
errors root

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own lastlog or wtmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/lastlog {
    monthly
    rotate 1
}

# system-specific logs may be configured here


여기에서 중요한것은 우선순위가 어디가 먼저인가하는 것이다.
우선 순위를 놓고 보자면 /var/log/wtmp, /var/log/lastlog 파일이 가장 높다.
즉 앞에서 weekly라고 설정을 해놓았지만 각각의 로그설정의 내용이 그 내용을
오버라이트한다.
weekly는 글로벌변수이고, 각각의 {}안의 내용은 로컬변수라고 생각하면 된다.

다음은 apache 로그를 처리하는 내용을 설정해보았다.

# system-specific logs may be configured here
/usr/local/apache/logs/access_log {
        monthly
        size=500k
        rotate 10
        errors bhcom34 at orgio.net
                mail bhcom34 at orgio.net
}

이 설정의 결과는 다음과 같다.
monthly라고 설정을 해놓았기 때문에 그 달의 처음 한번 실행된다.
단 size=500k라고 지정했으므로 monthly와 상관없이 용량을 초과하면
로그가 처리된다. 매일 crond에 의해 logrotate가 실행된다는것을 잊지말자 !
rotate 10은 10개까지 로그가 남는다는 설정이다.
error 발생시 다음의 메일주소로 메일을 보낸다.
mail은 로그가 10이 넘어가면 마지막 로그가 지워지면서 그 내용이 설정된 메일주소로
배달된다.

이렇게 logrotate.conf 파일에 설정을 해놓아도 되지만
/etc/logrotate.d 디렉토리에 나름대로의 이름을 만들고 설정을 해놔도 무방하다.



3. 설정 결과

로그가 언제 실행되었는지 알수 있는 방법은
/var/lib/logrotate.status 의 내용은 보면 알수 있다.

logrotate state -- version 1
/var/log/cron 2000-9-22
/var/log/messages 2000-9-22
/var/log/secure 2000-9-22
/var/log/maillog 2000-9-22
/var/log/spooler 2000-9-22
/var/log/boot.log 2000-9-22
/var/log/htmlaccess.log 2000-5-31
/var/log/netconf.log 2000-9-1
/var/log/wtmp 2000-9-1
/var/log/lastlog 2000-9-1
/usr/local/apache/logs/access_log 2000-9-22
/usr/local/apache/logs/error_log 2000-8-15
/var/log/samba/log.nmb 2000-7-30
/var/log/samba/log.smb 2000-7-30

단 이 내용은 단지 logrotate 프로그램이 실행되었다는것을 의미할뿐
실제로 로그가 처리되었다는것은 아니다.
실제로 로그가 처리되었는지 알 수 있는 방법은 로그가 있는 디렉토리에서
날짜를 확인하는 방법뿐이다.






Writer profile
author image
-아랑 -

트랙백 주소 : 이 글에는 트랙백을 보낼 수 없습니다

About

by 서진우

Counter

· Total
: 4586203
· Today
: 159
· Yesterday
: 485