OS (운영체제)/리눅스

[Linux] Linux logrotate

뜽배 2024. 7. 5. 20:55
728x90
반응형

리눅스 시스템에서 로그 파일 관리는 매우 중요하다.

이 log파일을 주기적으로 rotate해주는 작업을 자동화하는 도구가 'logrotate'이다.


1. logrotate.conf

이 파일은 로그 rotate에 대한 전반적인 정책이 포함되어 있다.

예를 들어 로그 파일을 얼마나 자주(일간, 주간, 월간 등)으로 rotate시킬지,
보관할 이전 로그 파일의 개수, 압축 여부 등을 설정할 수 있다.

이 파일의 위치는 /etc/logrotate.conf이다.

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

# keep 4 weeks worth of backlogs
rotate 4

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

# use date as a suffiox of the rotated file
dateext

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

# RPM packages drop log rotation information into the direcrtory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
	monthly
	create 0664 root utmp
		minsize 1M
	rotate 1
}

/var/log/btmp {
	missingok
	monthly
	create 0600 root utmp
	rotate 1
}

# system-specific logs may be also be configured here


위 와 같은 내용으로 이루어져 있다.

※ 여기서 'include /etc/logrotate.d' 이 문구가 꼭 있어야 /etc/logrotate.d 에 설정된 파일들도 logrotate에 의해 관리된다.


그리고 logrotate.conf 파일의 설정값은 기본 설정값이므로 /etc/logrotate.d 에 설정된 파일들은 기본적으로 logrotate.conf파일값을 가져간다.
하지만 logrotate.d에 파일에 개별적으로 설정되어 있다면 해당 값으로 설정이 된다.

위 파일에서는 /var/log/wtmp , /var/log/btmp의 경우 logrotate.conf에서 직접 지정되어 관리된다.


2. logrotate.d

이 디렉토리에는 각 애플리케이션마다 별도의 설정 파일이 있다.

예를들어 oracle데이터베이스 서버에서 발생하는 별도의 logrotate 정책을 정의할 수 있다.

예시) /etc/logrotate.d/yum

/var/log/yum.log {
	missingok
	notifempty
	maxsize 30k
	yearly
	create 0600 root root
}

 


3. 주요옵션


* daily, weekly, monthly : 로그파일을 일간, 주간, 월간 주기로 rotate시킨다.
* rotate <숫자> : 보관할 이전 로그 파일의 개수
* compress : rotate된 로그 파일을 압축
* missingok : 로그 파일이 없어도 오류를 발생시키지 않음
* notifempty : 로그 파일이 비어 있으면 rotate하지 않음.
* create <모드> <소유자> <그룹> : 새 로그 파일을 지정된 모드와 소유자, 그룹으로 생성
* postrotate, endscript : 로그 rotate후 실행할 스크립트 정의

728x90
반응형