UNIX/Redhat

logrotate 및 syslog 경로 설정

99iberty 2013. 11. 11. 17:53

http://light99.egloos.com/5153629

 

 

시스템관리에 있어서 주기적으로 확인 및 점검해야 할 사항 중에서 가장 중요한 것이 로그 파일이다.
리눅스에서는 /var/log 의 디렉토리에서 시스템의 모든 로그를 기록, 관리하고 있다. 시스템의 /etc/syslog.conf 파일에서 시스템 로그파일의
위치를 지정하고 있다.

1. /etc/syslog.conf

1) 설정 형식
시스템로그데몬인 syslogd가 실행을 할때 참조하는 설정 파일로써 관련된 로그파일의 종류와 저장위치를 설정 할 수 있다.
설정을 " ; "으로 추가 가능하다. 물론 로그파일위치 설정도 " ; " 으로 추가 가능하다.


2) 설정 종류와 뜻
- facility (서비스이름)
* : 모든 서비스
auth : 로그인과 같은 사용자 인증에 관한 메세지
authpriv : 보안 및 승인에 관한 메세지
cron : crond데몬과 atd데몬에 의해 발생되는 메세지 (예약)
daemon : telnet, ftp등과 같은 데몬에 관한 메세지
kern : 커널에 관한 메세지
lpr : 프린터 데몬에 의한 메세지
mail : sendmail 또는 pop 또는 qmail 등의 메일에 의한 발생되는 메세지
news : innd 등과 같은 뉴스시스템에 의한 메세지
uucp : uucp에 의한 시스템에 의한 메세지
user : 사용자에 의해 생성된 프로세스
syslog : syslogd에 의해 발생되는 메세지
local0 ~ local7 : 시스템부팅 메세지 기록

- priority (메세지 우선 순위, level)
* : 발생하는 모든 상황에 대한 메세지
debug [level 7] : 최하위, 디버깅 관련 메세지
info [level 6] : 단순한 프로그램에 대한 정보 및 통계관련 메세지
notice [level 5] : 에러가 아닌 알림에 관한 메세지
warning [level 4] : 주의를 요하는 메세지
err [level 3] : 에러가 발생한 상황의 메세지
crit [level 2] : 급한상황은 아니지만 치명적인 시스템 문제발생 상황의 메세지
alert [level 1] : 즉각적인 조치를 취해야하는 상화의 메세지
emerg [level 0] : 최상위, 매우 위험한 상황의 메세지 전체 공지가 요구되는 메세지
none : 메세지를 저장하지 않음

3) default /etc/syslog.conf의 설정의 설명


2. syslogd데몬
- 데몬설치 확인과 패키지


- 데몬 위치 ( /sbin/syslogd )

- 데몬 구동 확인 ( # ps -ef | grep syslogd )

- 데몬 구동 [시작, 재시작, 정지]
# /etc/rc.d/init.d/syslog [start, restart, stop] syslog.conf설정 파일을 적용하려면 데몬을 재시작해야 한다.

3. logrotate
logrotate는 로그 파일들을 logrotate.conf설정파일에 의하여 자르거나 삭제, 압축하여 로그파일을 관리하는 프로그램이다.
즉, syslogd데몬에 의해 생성된 /var/log파일들은 logrotate에 의해 자동 관리 되고 있다. 실행시만 구동되는 데몬이다.

1) 데몬과 관련 파일들
- 데몬 : /usr/sbin/logrotate
- 데몬 설정 파일 : /etc/logrotate.conf
- 설정 디렉토리 (세부설정파일) : /etc/logrotate.d --> logrotate에 적용할 각종 로그파일들을 보관하는 디렉토리
- 상황파일(작업내역 보관 파일) : /var/lib/logrotate.status --> logrotate한 작업내역을 보관한 파일
- cron 작업 : /etc/cron.daily/logrotate --> cron에 의해 일마다 한번씩 logrotae를 실행하여 로그파일을 작업함

2) 작동 순서
- cron(예약)에 의해 하루에 한번씩 /etc/cron.daily/logrotate가 실행된다. (데몬과 데몬설정파일을 실행하도록 쉘스크립트파일로 되있음)
- logrotate데몬이 /etc/logrotate.conf(글로벌 설정)과 /etc/logrotate.d디렉토리안의 설정파일들(해당서비스별 세부설정)을 적용하여 로그관리를 한다.
- 작업내역을 /var/lib/logrotate.status에 작업내역을 기록한다.

3) /etc/logrotate.conf 파일 설정 (logrotate의 글로벌한 설정파일)

rotate 4에서 주단위로 로그를 잘랐기 때문에 파일 4개만 보관하게 된다 즉, 4주간 로그파일을 보관한다.
예를들면 첫째주는 messages.1, 둘째주는 messagres.2 이런식으로 잘라서 저장하는데 마지막 5주째는 첫번째 messages.1을
지워버리고 덮어쓰게 된다.

4) /etc/logrotate.d 디렉토리
/etc/logrotate.d 디렉토리의 서비스별 설정 파일들은 다음과 같다. logrotate데몬에 의해 관리 되도록 설정하려면 /etc/logrotate.d 디렉토리에
설정내용을 추가하면 된다.


그러나 가장 중요한 설정파일인 syslog설정파일을 살펴본다.


5) logrotate의 주요 옵션 ( /etc/logrotate.conf에 적용 )
- compess : 로그파일을 gzip으로 압축하게 된다.
- create [mode owner group] : 순환되어 생성 하는 로그파일의 퍼미션, 소유자, 그룹소유자를 지정
ex) create 600 root rootgroup
- daily : 로그파일을 일 단위로 자른다.
- weekly : 로그파일을 주 단위로 자른다.
- monthly : 로그파일을 한달 주기로 자른다.
- errors address : 로케이트 작업시 에러가 발생하면 지정된 주소로 메일을 보낸다.
- extension [ext] : 로그파일의 뒤에 ext라는 확장자를 붙인다. 다른 확장자로 설정해도 관계없다
- ifempty : 로그파일이 비어 있어도 로케이트 작업을 한다. 기본값이다.
- notifempty : 로그파일이 비어 있으면 로케이트 작업을 하지 않는다.
- mail [메일주소] : 로테이트 작업후에 이전 로그파일을 지정된 메일주소로 보낸다.
- rotate [숫자] : 로테이트 작업파일이 순환되어지는 파일의 총 갯수
- size [size] : 로테이트의 수행결과로 생성된 파일의 사이즈가 지정된 사이즈가 넘지 않도록 지정 ex) size 100k, size 100M