Monday, May 2, 2016

Syslog

SYSLOG


syslog 는 컴퓨터 메시지를 기록하기 위한 표준 프로토콜rfc5424이다. SYSLOG 는 1980년대에 sendmail 프로젝트의 일환으로 Eric Allman 에 의해 개발되었고, 처음 에는 sendmail 용으로만 사용 되었다.

Facilities(프로그램 종류들)

Facility Number Facility Keyword Facility Description
0 kern 커널에 의한 메시지
1 user 사용자 수준의 메시지
2 mail 메일 시스템(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

설명

  1. 모든 발생되는 로그를 /var/log/allmsg.log 에 기록한다.
  2. pattern 형태가 들어가지 않는 모든 로그를 /var/log/allmsg-but-pattern.log 에 기록한다.

로그 보내기 예제

logger 명령어
$ logger -p local0.warn "facility:local0 and priority:warn"



Post a Comment