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