rsyslog 로그는 대기열 파일에 저장되지 않습니다.

rsyslog 로그는 대기열 파일에 저장되지 않습니다.

나는 그것을 사용하고 있다rsyslog 8.40큐를 사용하여 로그 전달을 설정하려고 합니다.

다음 구성을 사용하여 전달 서버에 로그를 보낼 수 있습니다.

   action(type="omfwd" target="host1" port="10515" protocol="udp" )
   action(type="omfwd" target="host2" port="10514" protocol="udp" )

이제 대상 서버가 다운될 때마다 로그가 손실되지 않도록 대기열에 로그를 보관하고 싶습니다.

이를 위해 나는 다음과 같은 작업을 수행하고 있습니다.

action(type="omfwd" target="host1" port="10515" protocol="udp"
               queue.spoolDirectory="/var/lib/rsyslog"
               queue.type="LinkedList"
               queue.filename="host1.queue"
               action.resumeRetryCount="-1"
               queue.saveOnShutdown="on"
)

action(type="omfwd" target="host2" port="10514" protocol="udp"
           queue.type="LinkedList"
           queue.filename="host2.queue"
           action.resumeRetryCount="-1"
           queue.saveOnShutdown="on"
)

전달 서버를 끄면 대기열 파일에 로그가 생성되지 않습니다. 다음 설정이 있으므로 로그가 /var/lib/rsyslog에 표시되기를 원합니다.

global(
    net.enableDNS="off"
    preserveFQDN="on"
    umask="0004"
    workDirectory="/var/lib/rsyslog"
)

JFTR,

  • 구성에 구성 오류가 없습니다.
  • rsyslogd에서 디버깅을 활성화했지만 이로 인해 오류가 발생하지 않습니다.

답변1

나는 이 동작의 원인을 알아냈습니다.

에서 인용여기

실제 스풀 파일은 원격 서버가 종료되고 메모리 큐에 더 이상 공간이 없을 때만 생성됩니다. 기본적으로 수백 개의 메시지가 기본적으로 메모리에 보관될 수 있으므로 원격 서버에 일시적인 오류가 발생하더라도 디스크 파일이 생성되지 않습니다.

관련 정보