대부분의 OS, 프로그램은 로그를 남겨 장애시 원인 분석에 이용하게 된다.

리눅스, 특히 CentOS7 에서는 rsyslog라는 로그 시스템이 다양한 로그를 남긴다.

또한 로그가 계속 쌓이면 파일 사이즈가 비대해져 디스크 공간 부족이 생길 수 있고, 파일을 열어 분석하는 작업도 쉽지 않기에, logrotate라는 프로그램이 쌓인 로그를 파일로 분할하고, 오래된 로그 파일을 삭제하는 등의 작업을 한다.

 

rsyslog

시스템의 다양한 로그를 남긴다

1. 로그 파일 저장 위치 : /var/log/ 디렉토리 하위에 저장

2. 주요 로그파일

로그파일 설명
messages 인증, 메일, cron을 제외한 대부분의 로그가 기록되는 파일
secure 인증, 즉 보안 관련 로그가 저장되는 파일
maillog 메일 관련 모든 로그가 저장되는 파일
cron cron 관련 모든 로그가 저장되는 파일
spooler uucp, news의 심각한 로그가 저장되는 파일
boot.log 부팅 메시지가 저장된 로그 파일

3. rsyslog 운영

rsyslog 시작

# systemctl start rsyslog

rsyslog 재시작

# systemctl restart rsyslog

rsyslog 종료

# systemctl stop rsyslog

rsyslog 상태확인

# systemctl status rsyslog

 

logrotate (로그로테이트)

쌓인 로그를 파일로 분할하고, 오래된 로그 파일을 삭제하는 등의 작업을 하여 로그를 관리한다.

파일을 어떻게 분할할지, 어떤 주기로 로테이트 시킬지 등은 logrotate 설정에서 가능하다.

1. logrotate 설정 : /etc/logrotate.conf

2. logrotate 설정파일 보기/수정하기

아래 명령어로 설정파일을 열어보고, 수정 후 저장하면 된다.

# vi /etc/logrotate.conf

logrotate.conf 내용 예

: 매주 로테이트, 최대 4개의 과거 로그 보관, 로그 파일 사이즈가 10M 이상이 되면 로테이트, 로그파일 압축 보관하는 예이다.

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

# keep 4 weeks worth of backlogs
rotate 4

size 10M

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

# use date as a suffix of the rotated file
dateext

# 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 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.

3. logrotate 실행

기본 실행

logrotate는 crond 데몬에 의해 매일 실행된다.

실행되는 파일 위치 : /etc/cron.daily/logrotate

 

직접 실행

설정 변경 후 바로 적용시키는 방법이다.

# logrotate -f /etc/logrotate.conf

+ Recent posts