나는 그것을 사용하고 있다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
나는 이 동작의 원인을 알아냈습니다.
에서 인용여기
실제 스풀 파일은 원격 서버가 종료되고 메모리 큐에 더 이상 공간이 없을 때만 생성됩니다. 기본적으로 수백 개의 메시지가 기본적으로 메모리에 보관될 수 있으므로 원격 서버에 일시적인 오류가 발생하더라도 디스크 파일이 생성되지 않습니다.