syslog format 에 대하여

소개

Syslog Client 를 직접 만들어 보기위해 syslog의 개념에 대해 확실히 집고 넘어가고자 내용을 정리해 봅니다.

Syslog 란?

시스템, 소프트웨어 등에서 발생하는 로그 메시지 로깅을 위한 표준 프로토콜입니다. 이 표준을 통해서 생성된 Syslog 를 Local 혹은 Remote Server(Elastic 같은) 로 송수신하여 로그 분석을 용이하게 할 수 있게 됩니다.

RFC3164 vs RFC5424

RFC3164 는 최초의 BSD 포맷의 Syslog 표준형식으로 정의 되었었습니다.

그러다 이 후 RFC5424 를 통해서 새로운 syslog format이 정의 되었고, 이를 통해서 더 정확한 timestamp 지정이 가능하게 되었고, 보다 더 구조화된 로그 메시지 설정이 가능하게 하였습니다.

RFC3164 에서의 Syslog Format

RFC3164에서 정의하고 있는 로그 Format은 아래와 같습니다.

<35>Aug 11 10:11:12 hostname su: 'su root' failed for login on /dev/pts/2

# <priority>[timestamp] [hostname] [processname] [message]

위의 포맷에서 priority 번호에 대해서만 대략적으로 설명을 하면 될 것같습니다. 나머지는 필드명만 봐서도 대략적으로 어떤 값이 들어가면 되는지 알 수 있을 것 같으니까요.

  • priority
    • 아래의 표(Priority 설정을 위한 Facility-Serverity)를 통해 적합한 값을 매칭하여 생성하면 priority 값을 보고도 Facility(유형) 과 Serverity(중요도)를 대략적으로 파악을 할 수 있게 됩니다.
    • 예를 들어 Facility : secur/auth(4) 이고 Serverity : Error(3) 이라면, Priority 값은 35 가 되는 것이죠.

RFC5424 에서의 Syslog Format

<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - BOM'su root' failed for lonvick on /dev/pts/8

# <priority>VERSION ISOTIMESTAMP HOSTNAME APPLICATION PID MESSAGEID STRUCTURED-DATA MSG

위의 포맷을 보면 기존의 RFC3164에서 추가된 필드들이 보입니다. 특징적인 부분은 Structured-data 를 통해서 로그 파싱이 좀더 쉽도록 지원을 하고 있습니다.

[표] Priority 설정을 위한 Facility-Severity

Priority 설정을 위한 Facility-Severity

참고

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Back To Top