私は使用しています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
私はこの動作の理由をなんとか理解することができました:
引用元ここ
実際のスプール ファイルは、リモート サーバーがダウンし、メモリ内キューに空き領域がない場合にのみ作成されます。デフォルトでは、数百のメッセージがメモリ内に保持されるため、リモート サーバーの短時間の障害によってディスク ファイルが作成されることはありません。