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에서 잘립니다(메시지 끝 부분을 사용할 수 없음).

UDP에서 netcat을 사용하여 긴 메시지를 업로드하려고 시도했을 때:

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 프로토콜을 사용하고 있습니다.RFC 3164. 섹션 4.1에서는 다음과 같이 말합니다.

패킷의 총 길이는 1024바이트 이하여야 합니다.

따라서 rsyslog는 syslog 메시지 표준을 준수하기 위해 메시지를 더 작은 패킷으로 분할하는 올바른 작업을 수행합니다.

ncat이 하나의 거대한 덩어리로 메시지를 보내는 이유는 ncat이 보내는 메시지 유형의 프로토콜에 대해 아무것도 모르기 때문에 메시지를 분할해야 한다는 사실을 인식하지 못하기 때문입니다.

관련 정보