SYSLOG
syslog 는 컴퓨터 메시지를 기록하기 위한 표준 프로토콜rfc5424이다. SYSLOG 는 1980년대에 sendmail 프로젝트의 일환으로 Eric Allman 에 의해 개발되었고, 처음 에는 sendmail 용으로만 사용 되었다.
Facilities(프로그램 종류들)
| Facility Number | Facility Keyword | Facility Description |
|---|---|---|
| 0 | kern | 커널에 의한 메시지 |
| 1 | user | 사용자 수준의 메시지 |
| 2 | 메일 시스템(sendmail, postfix, qmail…) 메시지 | |
| 3 | daemon | 데몬(ssh, ftp…)에 의한 메시지 |
| 4 | auth | 로그인과 같이 사용자 인증에 의한 메시지 |
| 5 | syslog | syslogd 데몬에 의한 메지시 |
| 6 | lpr | 프린터데몬인 lpd에 의한 메시지 |
| 7 | news | 뉴스프로그램에 의한 메시지 |
| 8 | uucp | uucp에 의한 메시지 |
| 9 | cron | 시간 데몬(crond, atd)에 의한 메시지 |
| 10 | authpriv | 보안 및 승인에 의한 메시지 |
| 11 | ftp | FTP 데몬에 의한 메시지 |
| 12 | - | NTP subsystem |
| 13 | - | log audit |
| 14 | - | log alert |
| 15 | - | clock daemon |
| 16 | local0 | 여분용:local use 0 (local0) |
| 17 | local1 | 여분용:local use 1 (local1) |
| 18 | local2 | 여분용:local use 2 (local2) |
| 19 | local3 | 여분용:local use 3 (local3) |
| 20 | local4 | 여분용:local use 4 (local4) |
| 21 | local5 | 여분용:local use 5 (local5) |
| 22 | local6 | 여분용:local use 6 (local6) |
| 23 | local7 | 여분용:local use 7 (local7) |
Priorities(우선순위)
| Priority Number | Priority Keyword | Priority Description |
|---|---|---|
| 0 | emerg | 매우 위험한 상황의 메시지 ( 가장 높은 단계 ) |
| 1 | alert | 즉각적인 조치를 해야하는 메시지 |
| 2 | crit | 급한상황은 아니지만 치명적인 시스템 문제 발생 메시지 |
| 3 | err | 에러에 의한 메시지 |
| 4 | warn | 주의를 요하는 메시지 |
| 5 | notice | 에러는 아니지만 흔치 않은 상태에 대한 대한 메시지 |
| 7 | debug | 운영에 사용되지 않는 애플리케이션 디버깅을 위해 개발자들이 사용하는 메시지 |
RSYSLOG
Rsyslog는 향상된 멀티 쓰레드 시스템 로그 데몬으로 MySQL, syslog/TCP, RFC 3195, 받아들일 서버들에 대한 선택적 설정, 세밀한 출력 형식 제어를 제공한다.
로그 선택 문법
{facility}.{priority}
연산자
| 연산자 | 설명 | 적용범위 |
|---|---|---|
| * | 전체 선택 | facility|priority |
| = | 왼쪽에 오는 것만 선택 | priority |
| ! | 왼쪽에 오는 것은 제외 | priority |
| , | 다중 선택(OR연산) | facility |
| ; | 필터 | - |
| \n | 필터 | - |
| none | 해당 facility 를 제외 | priority |
로그 선택 예제
| 문법 | 선택된 facility | 선택된 priority |
|---|---|---|
| kern.* | kern | 전체 |
| *.warn | 전체 | warn 이랑 같거나 작은 모든 priority(<= warn) |
| kern,cron.=warn | kern 또는 cron | warn |
| .=debug;.=info;.=notice;.=warn;*.crit | 전체 | debug|info|notice|warn|(<= crit) |
| .;cron.!warn | 전체 | {facility 가 cron 과 같고 priority가 warn 보다 큰 모든 priority(> warn)} 또는{이패턴을 제외한 모든 priority} |
| .;local1.!=warn | 전체 | {facility가 local1 과 같고 priority가 warn 인 것}을 제외한 모든 priority{!(facility # local1 && priority # warn)} |
| .;local1,local2,local3.none | local1, local2, local3 를 제외한 모든 facility | 전체 |
로그 필터링
특정 패턴만 제거하고 받기
$ vi /etc/rsyslog.conf
*.* /var/log/allmsg.log
:msg, contains, "pattern" ~
*.* /var/log/allmsg-but-pattern.log
설명
- 모든 발생되는 로그를
/var/log/allmsg.log에 기록한다. - pattern 형태가 들어가지 않는 모든 로그를
/var/log/allmsg-but-pattern.log에 기록한다.
로그 보내기 예제
logger 명령어
$ logger -p local0.warn "facility:local0 and priority:warn"
Post a Comment