¿Limitación de carga de rsyslog?

¿Limitación de carga de rsyslog?

Utilizo rsyslog para cargar registros a mi servidor 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

Algunos mensajes largos se truncan en Graylog (el final del mensaje no está disponible).

Cuando intenté subir un mensaje largo con netcat en UDP:

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

El mensaje está en Graylog (en varios mensajes pero todos los mensajes están disponibles)

¿Por qué una parte de un mensaje de rsyslog se trunca y un mensaje de netcat no?

¿Es necesario aumentar un parámetro de tamaño máximo o algo así?

Lo intenté

$MaxMessageSize 256k
$MainMsgQueueDequeueBatchSize 256

pero sin éxito

Gracias

ingrese la descripción de la imagen aquí

Respuesta1

rsyslogd utiliza el protocolo syslog, que se define enRFC 3164. En la sección 4.1, dice

La longitud total del paquete DEBE ser de 1024 bytes o menos.

Por lo tanto, rsyslog hace lo correcto al dividir el mensaje en paquetes más pequeños para cumplir con el estándar para mensajes syslog.

La razón por la que ncat envía el mensaje como un blob enorme es que ncat no sabe nada sobre el protocolo para el tipo de mensaje que estás enviando, por lo que no es consciente de que debería dividir el mensaje.

información relacionada