[CentOS 8] 시스템 로그
1. 시스템 로그
주요 시스템 로그는 /var/log/message, /var/log/secure, /var/log/cron, /var/log/dmesg 등이 있다.
/var/log/messages : 시스템 표준 에러관련 메세지가 기록된다.
/var/log/secure : 원격 접속과 관련하여 언제 어디서 어떤 서비스를 사용했는지 기록한다.
/var/log/cron : cron 데몬이 실행했던 작업을 기록한다.
/var/log/dmesg : 시스템이 부팅될 때 출력되었던 메세지가 기록된다.
2. syslogd 설정
대부분의 로그는 syslogd 데몬이 관리하며, 설정파일은 /etc/rsyslog.conf 이다.
MODULES 섹션은 사용할 모듈을 지정하며, 이러한 모듈은 /usr/lib64/rsyslog 디렉토리에 있다.
GLOBAL DIRECTIVES 섹션은 rsyslog 데몬 전체에 적용되는 내용을 설정한다.
RULES 섹션은 저장될 로그의 종류와 위치를 지정한다. 형식은 facility.level action 이다.
facility는 메세지를 발생시키는 프로그램 유형을 의미한다.
facility | 설명 |
---|---|
kern(0) | 커널이 발생한 메세지 |
user(1) | 사용자 프로세스 |
mail(2) | 메일 시스템이 발생한 메세지 |
daemon(3) | 데몬이 발생한 메세지 |
auth(4) | 인증 프로그램 유형이 발생한 메세지 |
syslog(5) | syslog가 발생한 메세지 |
lpr(6) | 프린트 유형의 프로그램이 발생한 메세지 |
news(7) | 유즈넷 뉴스 프로그램이 발생한 메세지 |
uucp(8) | UUCP 시스템이 발생한 메세지 |
cron(9) | cron, at 과 같은 프로그램이 발생한 메세지 |
authprive(10) | 개인 인증을 요하는 프로그램이 발생한 메세지 |
local0-local7(16~23) | 여분으로 남겨둔 유형 |
facility 뒤에 .none 이 붙으면 해당 facility는 제외하겠다는 의미이다. 예를 들어 mail.none 은 메일 관련 메세지를 제외한다는 의미이다.
level은 위험 정도를 가리키며, 설정된 위험의 정도보다 높아야 메세지를 보낸다.
level | 설명 |
---|---|
debug(7) | 프로그램을 디버길할 때 발생하는 메세지 |
info(6) | 통계, 기본정보 메세지 |
notice(5) | 특별한 주의를 요하나 에러는 아닌 메세지 |
warning(4) | 주의를 요하는 경고 메세지 |
err(3) | 에러가 발생하는 경우의 메세지 |
crit(2) | 크게 급하지는 않지만 시스템에 문제가 생기는 단계의 메세지 |
alert(1) | 즉각적인 조정을 해야 하는 상황 |
emerge(0) | 모든 사용자들에게 전달되어야 할 위험한 상황 |
레벨 앞에 ‘=’을 사용할 경우 해당 레벨의 위험도와 같은 경우를 의미한다.
action은 메세지를 보낼 목적이나 행동들에 관한 설정이다.
action | 설명 |
---|---|
파일 경로 | 해당 파일에 내용을 추가 |
@host | 지정된 호스트로 메세지 전송 |
user | 지정된 사용자의 스크린으로 메세지 전송 |
* | 현재 로그인되어 있는 모든 사용자의 스크린으로 메세지 전송 |
예시는 다음과 같다.
*.=crit;kern.none /var/log/critical
: 커널을 제외한 모든 facility가 발생시키는 것 중에서 crit 레벨과 같은 수준의 메세지를 /var/log/critical 파일에 저장한다.
*.emerge *
: 모든 facility에서 발생한 emerge 이상 레벨의 메세지를 로그인한 모든 사용자의 스크린에 전송한다.
3. 원격 로그 전송
Slave에서 발생한 로그를 Master로 전송한다.
Master
rsyslog 를 시작하고 514번 포트 udp tcp를 방화벽에서 해제한다. /etc/rsyslog.conf 에서 imjournal 모듈이 실행되도록 한다.
Slave
/etc/rsyslog.conf 에 전송하고 싶은 RULE을 설정한다. e.g.) *.* @192.168.111.100
이제 Slave의 로그가 마스터의 /var/log/messages 에 출력된다.
댓글남기기