ограничение загрузки 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

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

Thx

enter image description here

0
задан 27 February 2018 в 12:02
1 ответ

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

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

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

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

0
ответ дан 5 December 2019 в 06:24

Теги

Похожие вопросы