나는 사용하고있다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
나는 이 행동의 이유를 알아냈습니다.
에서 인용여기
실제 스풀 파일은 원격 서버가 다운되고 메모리 내 대기열에 더 이상 공간이 없는 경우에만 생성됩니다. 기본적으로 원격 서버의 짧은 오류로 인해 디스크 파일이 생성되지 않습니다. 기본적으로 수백 개의 메시지가 메모리에 보관될 수 있기 때문입니다.