시스템에서 일어나는 모든 이벤트 등은 각 서비스별로 기록되는데, 이 기록을 로그라고 합니다
로그 분석은 시스템을 관리하거나 보안을 유지하는데 중요한 역할을 수행하므로
잘 관리하고 있어야 합니다
과거 리눅스는 로그 기록과 관련된 패키지로 syslog라는 패키지를 사용했습니다
syslogd라는 데몬이 /etc/syslog.conf
설정 파일을 기반으로 서비스별 로그파일을
/var/log
디렉토리에 생성했습니다
현재 리눅스는 rsyslog
패키지로 대체되었습니다
rsyslog는 기존 syslog와 유사하게 rsyslogd 데몬이 /etc/rsyslog.conf
설정 파일을 기반으로
서비스별 로그 파일을 /var/log
디렉토리에 생성합니다
rsyslog는 syslog의 성능을 강화한 패키지로 멀티스레드 지원, TCP 지원 등 다양한 기능을 제공합니다
facility.priority action
rsyslog는 다양한 모듈을 제공하고 있습니다
제공하는 모듈은 크게 om(output module)으로 시작하는 출력 모듈과
im(input module)으로 시작하는 입력 모듈로 나눌 수 있습니다
로그 파일은 계속 쌓이는 형태라 파일의 크기도 계속 커집니다
이를 방지하기 위해 로그 파일을 여러개로 분할해주는 프로그램이 logrotate
입니다
logrotate
는 로그파일의 자동 로테이션 기능, 압축기능, 제거 등을 지원합니다
각 로그 파일은 하루 ~ 연 단위로 로테이션할 수 있고, 파일의 크기를 지정할 수도 있습니다
시스템과 관련된 기본적인 로그 설정은 /etc/logrotate.conf
에서 제어하고
응용 프로그램은 /etc/logrotate.d
디렉토리 내에 위치해서 로그 파일을 관리하고 있습니다
명령행에서 logrotate
를 직접 사용가능하지만 현재는 /etc/cron.daily
디렉토리에 등록되어서
cron에 의해 스케줄링 되어 실행되고 있습니다
logrotate [option] config_file