Невозможно получить структурированные данные Rsyslog в сообщении syslog

Невозможно получить структурированные данные Rsyslog в сообщении syslog

Я новичок в модуле syslog. Я пытаюсь регистрировать сообщения со структурированными данными, используя этот параметр в шаблоне. Но он показывает нулевое значение для структурированных данных. Я работаю с 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 имеет единственный libc, совместимый с RFC5424, сsyslogp()Функция.)

решение2

Я тоже пытаюсь этого добиться. Мне удалось выяснить, как выдавать формат сообщений RFC5424 с помощью шаблона RSYSLOG_SyslogProtocol23Format. Однако я не знаю, как добавлять поля в структурированные данные. Кроме того, если это имеет значение, я успешно отправляю/получаю формат RFC5424 с помощью syslog-ng.

Связанный контент