[시스템] 리눅스 시스템 로그 관리 방법

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 프로그램이 실행되었다는것을 의미할뿐

실제로 로그가 처리되었다는것은 아니다.

실제로 로그가 처리되었는지 알 수 있는 방법은 로그가 있는 디렉토리에서

날짜를 확인하는 방법뿐이다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.