Назад | Перейти на главную страницу

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

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

Спасибо

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

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

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

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