rsyslog パッケージの omfwd モジュールによる TCP 通信 1 が発生した際に、ソケットから制御が戻るまでの間、他のアクションでも出力が遅延する。 例えば、デフォルトの /etc/rsyslog.conf の場合、下記ファイルへの出力が遅延する。
- /var/log/messages
- /var/log/secure
- /var/log/maillog
- /var/log/cron
- /var/log/spooler
- /var/log/boot.log
omfwd モジュールを使用して TCP 通信を行うアクションが、キューなし(デフォルトの $ActionQueueType Direct)の場合。
例えば、/etc/rsyslog.conf(または /etc/rsyslog.d 配下のファイル)に転送設定 1 のみを追加し、アクションキュー設定を追加しない場合。
特に影響が大きいのが、TCP 接続の確立要求(3ウェイハンドシェイクの SYN パケット)に応答がなく、タイムアウトまで待機する場合。
RHEL7 のデフォルトでは、リトライは6回(net.ipv4.tcp_syn_retries=6)のため、合計で2分強も遅延する。
なお、相手ホストが存在しない場合でも、ルータから ICMP(destination unreachable)が返るならば発生しない。
TCP転送アクション 1 にキューがないために、非同期に処理できず?(メインメッセージキューが次へ進めず?)、他アクションも巻き込まれる。
/etc/rsyslog.conf(または /etc/rsyslog.d 配下のファイル)への転送設定 1 の追加に合わせて、アクションキュー(例: $ActionQueueType LinkedList)も追加する。