Rsyslog: Начальный пробел в сообщениях в формате RFC5424

Созданный на 22 нояб. 2014  ·  3Комментарии  ·  Источник: rsyslog/rsyslog

При использовании шаблона RSYSLOG_SyslogProtocol23Format для отправки сообщений поле MSG содержит начальный пробел.

Используется следующая конфигурация:

$ActionQueueFileName name1
$ActionQueueMaxFileSize 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
$DefaultNetstreamDriverCAFile /path/to/CA.crt
$ActionSendStreamDriver gtls
$ActionSendStreamDriverMode 1
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer syslog.domain.com
*.* @@(o)syslog.domain.com:1234;RSYSLOG_SyslogProtocol23Format

Ввод команды logger test123 приводит к отправке на сервер следующего сообщения. Обратите внимание на два пробела после NILVALUE для поля структурированных данных:
<13>1 2014-11-21T19:02:19.219331-06:00 host1 user1 - - - test123

Приведенный выше журнал отображается в формате сообщения RFC5424 следующим образом:
ПРИ = <13>
ВЕРСИЯ = 1
TIMESTAMP = 2014-11-21T19:02:19.219331-06:00
ИМЯ ХОСТА = хост1
ИМЯ ПРИЛОЖЕНИЯ = user1
PROC-ID = -
МСГИД = -
СТРУКТУРИРОВАННЫЕ ДАННЫЕ = -
MSG = 'test123'

Значение поля MSG заключено в одинарные кавычки выше, чтобы проиллюстрировать начальный пробел в сообщении. Каждое сообщение, отправленное этим сервером, имеет начальный пробел. Вышеприведенный пример — это просто пример использования logger.

rsyslogd 8.4.2, скомпилированный с помощью:
FEATURE_REGEXP: Да
Поддержка GSSAPI Kerberos 5: Нет
FEATURE_DEBUG (отладочная сборка, медленный код): Нет
Поддерживаются 32-битные атомарные операции: Да
Поддерживаются 64-битные атомарные операции: Да
распределитель памяти: система по умолчанию
Инструментарий времени выполнения (медленный код): Нет
поддержка uuid: Да
Количество битов в целых числах RainerScript: 64

Такое поведение можно наблюдать и при перехвате пакетов этого трафика (конечно, TLS отключен для проверки).
0x0070: 202d 202d 2020 7465 7374 3132 330a .-.-..test123.

Если есть какая-либо дополнительная информация, которую я могу предоставить, или если мой тестовый пример/конфигурация ошибочны, сообщите мне об этом. Спасибо! :улыбка:

Самый полезный комментарий

mmrm1stspace был добавлен в v8.24.0.

Комментирую здесь, так как впервые обнаружил эту проблему при поиске в Google.

Все 3 Комментарий

Начальный пробел присутствует, потому что сообщение создано в формате RFC3164, и если после тега есть пробел (обычно так и бывает), это часть поля MSG. Таким образом, MSG действительно начинается с пробела. Если вы хотите удалить это пространство, вы можете сделать это через обработчик шаблонов, при необходимости используя условную логику (если необходимо обработать исходящие сообщения 3164 и 5424).

mmrm1stspace был добавлен в v8.24.0.

Комментирую здесь, так как впервые обнаружил эту проблему при поиске в Google.

Эта ветка была автоматически заблокирована, так как после ее закрытия не было никаких действий в последнее время. Пожалуйста, откройте новую проблему для связанных ошибок.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги