리눅스에서는 다양한 로그가 생성된다. 주로 생성되는 로그는 아래와 같다
- 시스템로그 : syslog, auth 로그, kernel 로그, boot 로그 등등
- 데몬서비스 로그 : 메일로그, 웹접속 로그, FTP 로그 등등
이렇게 많은 종류의 로그가 생성되는데 일반적으로 /var/log 디렉터리에 생성되고 일반적으로 평문으로 저장된다(wtmp같이 아닌것도 있지만) 이런 로그들이 지속적으로 쌓이고 쌓이다 보면 디스크 저장 공간을 모두 차지하여 Disk Full 장애가 발생할 수도 있다.
모든 시스템에서 로그는 과거의 이력을 확인할 수 있는 중요한 정보이기 때문에 반드시 관리가 필요하다. 나중에 로그확인이 필요한데 로그가 없다거나 그러면 큰 낭패일 수 없다…
리눅스에서는 기본적으로 Logrotate 데몬이 로그관리 기능을 제공해준다.
설치 확인 방법
<Debian 계열>
root@localhost:~# dpkg -l | grep logrotate
<Redhat 계열>
[root@localhost ~]# rpm -qa | grep logrotate
설정하기
일반적으로 /etc/logrotate.conf 파일에 Global 설정이 저장되고 각 데몬별로 /etc/logrotate.d에 설정이 존재한다.
아래는 /etc/logrotate.conf 파일에 정의된 설정 항목들이다.
1. 로그 회전 주기
# rotate log files weekly
weekly
- yearly : 매년
- monthly : 매월
- weekly : 매주
- daily : 매일
2. 로그 파일 생성 개수
# keep 4 weeks worth of backlogs
rotate 4
- rotate [숫자] : 로그파일을 최대 몇개까지 생성할 것인지 설정
3. 로그파일 생성
# create new (empty) log files after rotating old ones
create
4. 로그 파일명
# 회전 된 파일
dateext 의 접미사로 날짜 사용
5. 로그 압축여부
# uncomment this if you want your log files compressed
compress
6. 개별 데몬 로그 설정 위치
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
7. logrotate.d 설정하기(syslog 설정 예시)
/var/log/syslog
{
rotate 5 // 로그 파일을 최대 5개까지 생성(ex. syslog.1~5)
weekly // 주단위로 로그파일을 생성
size 10M // 10M보다 클 경우 로테이트 실행
missingok // 파일이 중간에 누락되어도 무시하고 진행
notifempty // 로그파일의 내용이 없을 경우 로테이션을 진행하지 않음
delaycompress //
compress // 로그파일을 압축
postrotate // 로테이션 실행 전 스크립트 파일을 실행
/usr/lib/rsyslog/rsyslog-rotate
endscript // 로테이션 실행 후 스크립트 파일을 실행
create 644 root root // 로테이트 되는 로그파일 생성 시 부여할 권한
}