syslog 메시지에서 Rsyslog 구조적 데이터를 가져올 수 없습니다.

syslog 메시지에서 Rsyslog 구조적 데이터를 가져올 수 없습니다.

저는 syslog 모듈을 처음 사용합니다. 템플릿에서 이 매개변수를 사용하여 구조화된 데이터가 포함된 메시지를 기록하려고 합니다. 그러나 구조화된 데이터의 경우 null 값이 표시됩니다. 저는 rsyslogd 5.8.11 및 rsyslogd 4.8.4를 사용하고 있으며 두 버전 모두 동일한 결과를 얻고 있습니다.

나는 템플릿을 사용하고 있습니다 :

"<%PRI%>%TIMESTAMP:::date-rfc3339%%HOSTNAME%%syslogtag%%APP-NAME%%PROCID%%MSGID% %msg% %STRUCTURED-DATA%\n”

아래와 같은 메시지 형식을 얻습니다.

<142>  2015-01-29T06:43:53.081641-05:00 localhost login[2116]: login 2116 -  [2116 : 2116 INFO]SERIAL Login from IP:127.0.0.1 user:admin -

누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있나요? 로그 파일에 SD-ID, SD-PARAM이 포함된 구조화된 데이터가 포함된 메시지를 기록하고 싶습니다.

답변1

rsyslog는 구조화된 데이터와 함께 RFC5424 메시지를 내보낼 수 있습니다.

하지만 RFC5424 메시지를 보내는 방법도 있습니까?에게rsyslog? -- UDP 또는 TLS를 통해 직접 메시지를 기록하는 경우 작동합니다. 그러나 기존 BSD Syslog 기능을 통해 로그인하면 구조화된 데이터나 MSGID가 없습니다. (AFAIK NetBSD에는 RFC5424를 지원하는 유일한 libc가 있습니다.syslogp()기능.)

답변2

나는 또한 이것을 달성하려고 노력하고 있습니다. 템플릿을 사용하여 RFC5424 메시지 형식을 내보내는 방법을 알아냈습니다 RSYSLOG_SyslogProtocol23Format. 하지만 구조화된 데이터에 필드를 추가하는 방법을 모르겠습니다. 또한 syslog-ng를 사용하여 RFC5424 형식을 성공적으로 보내고 받고 있습니다.

관련 정보