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

私はこの動作の理由をなんとか理解することができました:

引用元ここ

実際のスプール ファイルは、リモート サーバーがダウンし、メモリ内キューに空き領域がない場合にのみ作成されます。デフォルトでは、数百のメッセージがメモリ内に保持されるため、リモート サーバーの短時間の障害によってディスク ファイルが作成されることはありません。

関連情報