유닉스 시스템은 (r)syslog 표준 인터페이스를 통해 커널 및 응용 프로그램에 의해 발생하는 로그를 체계적으로 생성하고 관리한다.
커널 및 응용 프로그램이 (r)syslog API를 통해 로그를 생성하면 (r)syslogd 데몬 프로세스가 (r)syslog.conf 설정 파일을 참조하여 지정한 로그 파일, 콘솔 또는 외부 서버 등에 로그를 기록한다.
로그의 우선순위
숫자 | 우선순위 | 심각도 |
---|---|---|
0 | emerg | 시스템 구동 여부에 영향을 줄 수 있는 레벨 |
1 | alert | 즉시 조치가 필요함 |
2 | crit | 심각한 오류 |
3 | err | 중요도가 낮은 오류 |
4 | warning | 경고 |
5 | notice | 정상상태에서 발생하는 메시지 중 중요도 높음 |
6 | info | 일상적인 내용 |
7 | debug | 디버깅 메시지 (일상적인 내용보다 자세한 내용) |
rsyslog 관련 파일
/var/log/
/etc/rsyslog.conf : rsyslog 설정파일
포맷
A 서비스(데몬)에 대하여 B로그 레벨 이상의 상황이 발생한 경우 C의 형식(파일, 콘솔, 외부서버 등)으로 로그를 남기라는 의미
/etc/rsyslog.conf 내 RULE 설정
```
#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
.
.
.
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg :omusrmsg:*
```
facility : 로그 생성 서비스
ㆍ * : 모든 서비스
ㆍauthpriv : 인증 및 보안 관련 메시지
ㆍcron : cron 데몬과 atd데몬에 의해 발생되는 메시지
ㆍdaemon : telnet, ftp 등과 같은 데몬에 의한 메시지
ㆍkern : kernel에 의한 메시지
ㆍlpr : 프린터 데몬인 lpd에 의해 발생되는 메시지
ㆍmail : sendmail, pop, qmail 등의 메일 시스템에서 발생되는 메시지
ㆍnews : USENET 등과 같은 뉴스시스템에 의해 발생되는 메시지
ㆍuser : 사용자에 의해 생성된 프로세스
ㆍsyslog : syslogd에 의해 발생되는 메시지
ㆍlocal0 ~ local7 : 시스템 부팅 메시지 기록, 기타 여분 서비스에 사용하기 위함
priority : 로그 수준(Level)
높음
ㆍ emerg : 시스템이 전면 중단되는 패닉상태, 전체 공지가 필요한 상황 (system is unusable)
ㆍ alert : 즉각적인 조치가 필요한 상황 (action must be taken immediately)
ㆍ crit : 하드웨어 등의 심각한 오류가 발생한 상황 (critical condition)
중간 err : 일반적인 에러/오류가 발생한 상황
ㆍ warning : 경고 메시지
ㆍ notice : 에러/오류는 아니지만 관리자의 조치가 필요한 상황
ㆍ info : 의미 있는 정보 관련 메시지
ㆍ debug : 디버깅용 메시지
낮음
facility에 로그 수준을 지정하게 되면 해당 수준이상의 상황이 발생했을 때 로그가 남게 된다.
(r)syslog.conf에 로그 수준을 " * " 로 지정하면 모든 로그 수준의 로그를 남기겠다는 의미이며, "none"으로 설정하면 어떠한 경우라도 로그를 남기지 않겠다는 의미이다.
action
로그를 어디에 남길 것인지를 결정한다. 로그 파일, 콘솔, 원격 로그 서버, 특정 사용자 등에 로그를 남길 수 있다.
ㆍ로그 파일 : 파일명(경로) 지정 ex) /var/log/messages
ㆍ콘솔 : /dev/console로 지정 시 콘솔 출력
ㆍ원격 로그 서버 : "@호스트 주소"를 통해 지정한 호스트로 로그를 보낸다 ex) @192.168.56.3
ㆍuser : 지정된 사용자의 스크린으로 메시지를 보낸다
ㆍ* : 현재 로그인 되어있는 모든 사용자의 스크린으로 메시지를 보낸다