Ограничение на загрузку rsyslog?

Ограничение на загрузку rsyslog?

Я использую rsyslog для загрузки журналов на свой сервер Graylog

/etc/rsyslog.conf:

$InputFileName /var/log/apache-error.log
$InputFileFacility apache
$InputFileTag #apacheError:
$InputFileStateFile apache-error
$InputFileSeverity error
$InputRunFileMonitor

if $programname == '#apacheAccess' then @1.2.3.4:1514

Некоторые длинные сообщения в Graylog обрезаются (конец сообщения недоступен).

Когда я попытался загрузить длинное сообщение с помощью netcat в UDP:

echo -n -e "$(for i in $(seq 0 64000); do echo -n '0123456789';done)" | nc -u 1.2.3.4 1514

Сообщение находится в Graylog (в нескольких сообщениях, но все сообщения доступны)

Почему часть сообщения от rsyslog обрезается, а сообщение от netcat — нет?

Нужно ли увеличивать параметр maximumSize или что-то в этом роде?

Я пытался

$MaxMessageSize 256k
$MainMsgQueueDequeueBatchSize 256

но безуспешно

Спасибо

введите описание изображения здесь

решение1

rsyslogd использует протокол syslog, который определен вRFC3164. В разделе 4.1 говорится:

Общая длина пакета ДОЛЖНА быть 1024 байта или меньше.

Таким образом, rsyslog поступает правильно, разбивая сообщение на более мелкие пакеты, чтобы соответствовать стандарту сообщений syslog.

Причина, по которой ncat отправляет сообщение одним большим блоком, заключается в том, что ncat ничего не знает о протоколе для типа отправляемого сообщения, поэтому он не знает, что ему следует разбить сообщение на части.

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