2015-05-16 5 views
1

My daemon использует libc syslog() вызов, который регистрирует сообщения в формате RSYSLOG_TraditionalFileFormat. Демон rsyslogd, работающий на том же узле, должен пересылать все эти сообщения в удаленный сборщик журналов в формате RSYSLOG_SyslogProtocol23Format.преобразовать формат сообщения rsyslog при пересылке сообщений со структурированными данными

Теперь я хочу, чтобы «поросенок обратно» %STRUCTURED-DATA% в RSYSLOG_TraditionalFileFormat формате (в основном, когда мой демон призовет syslog() будет указать структурированные данные в квадратных скобках). Как указать формат (или шаблон) журнала входящих сообщений в rsyslog.conf, чтобы он понимал структурированные данные?

Я понимаю, что одним из решений было бы для моего демона напрямую отправить сообщение на /dev/log и изменить формат сообщения журнала по умолчанию в rsyslog.conf. Однако это не кажется правильным, потому что я хочу сохранить формат локального журнала одинаковым.

ответ

1

Похоже, что это невозможно решить элегантным способом, поскольку вызов libc syslog() использует /dev/log UNIX-домен.

И rsyslog 8.8 и старше используют синтаксический анализатор сообщений для сообщений, полученных через сокет домена UNIX. См параметр usespecialparser (http://www.rsyslog.com/doc/v8-stable/configuration/modules/imuxsock.html)

Другой вариант, чтобы получить эту работу с последней Ubuntu 15.04, который поставляется с Rsyslog 7.4 будет использовать сокет UDP, но я не могу использовать Libc syslog() больше.

Смежные вопросы