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

나는 이 행동의 이유를 알아냈습니다.

에서 인용여기

실제 스풀 파일은 원격 서버가 다운되고 메모리 내 대기열에 더 이상 공간이 없는 경우에만 생성됩니다. 기본적으로 원격 서버의 짧은 오류로 인해 디스크 파일이 생성되지 않습니다. 기본적으로 수백 개의 메시지가 메모리에 보관될 수 있기 때문입니다.

관련 정보