rsyslogでログが重複送信される原因

  • URLをコピーしました!

rsyslog を使ったログ転送環境で、

  • 同じログが2回以上送信される
  • ログサーバー側で重複レコードが増える
  • 設定を変えた覚えがないのに突然発生する

といった現象に悩まされたことはないでしょうか。

rsyslog のログ重複は、設定ミスというより「仕組みを知らないと起きやすい仕様問題」です。

本記事では、

  • rsyslogでログが重複送信される代表的な原因
  • 確認すべき設定ポイント
  • 原因別の具体的な修正方法
  • 解消したと判断する基準

を、実務トラブルシューティングの視点で解説します。

目次

まず理解する:rsyslogで重複が起きる構造

rsyslog は、

  • 複数の入力(imuxsock / imjournal など)
  • 複数の設定ファイル
  • 複数の action(送信先)

同時に処理できる設計 です。

そのため、

「同じログを2回取り込む」
「同じログを2回送信する」

構成を、意図せず作ってしまうことがあります。

原因1:imuxsock と imjournal の二重取り込み

概要

systemd 環境では、

  • imuxsock(/dev/log)
  • imjournal(journald連携)

の両方が有効になっていると、同じログを2回取り込みます。

確認ポイント

grep -R "imuxsock" /etc/rsyslog.conf /etc/rsyslog.d
grep -R "imjournal" /etc/rsyslog.conf /etc/rsyslog.d

異常の判断基準:
両方が有効で、フィルタ分岐していない

対処方法

  • どちらか一方を無効化する
  • または用途ごとに明確に分岐する

一般的には imjournal のみ使用 が推奨されます。

原因2:同じ送信先への action が複数定義されている

概要

設定ファイルが分割されていると、

  • /etc/rsyslog.conf
  • /etc/rsyslog.d/*.conf

に同じ送信定義が重複することがあります。

確認ポイント

grep -R "omfwd" /etc/rsyslog.conf /etc/rsyslog.d

異常の判断基準:
同じIP・ポートへの送信が複数存在

対処方法

  • 送信定義を1箇所にまとめる
  • 条件分岐を明示する

原因3:条件分岐後に stop がない

概要

rsyslog は条件に一致しても、

処理を止めない限り、次のルールも評価します。

よくある例

if ($programname == "nginx") then {
  action(type="omfwd" ...)
}
# stop がない
*.* action(type="omfwd" ...)

この場合、nginxログは2回送信されます。

対処方法

if ($programname == "nginx") then {
  action(type="omfwd" ...)
  stop
}

原因4:journald 側ですでに転送されている

概要

journald が rsyslog 以外にも転送しているケースです。

確認ポイント

grep ForwardToSyslog /etc/systemd/journald.conf

異常の判断基準:
journald → rsyslog → rsyslog で二重経路

対処方法

  • journald 側の転送設定を整理
  • rsyslog 側で入力元を明確化

原因5:キュー再送による「見かけ上の重複」

概要

送信失敗後の再送で、受信側に二重記録されるケースです。

確認ポイント

  • 送信先の一時的な停止履歴
  • rsyslog のキューファイル

対処方法:
受信側で重複排除、または TCP 使用を検討

解消したと判断する基準

  • logger で送信したログが1件のみ記録される
  • ログサーバー側で重複が発生しない
  • rsyslog 再起動後も再現しない

実務的な切り分け手順

  1. 入力が二重になっていないか
  2. 送信 action が重複していないか
  3. 条件分岐に stop があるか
  4. journald との役割分担
  5. 再送・キュー影響の確認

まとめ

  • rsyslog の重複は仕様理解不足で起きやすい
  • 入力・条件・出力を分けて考える
  • stop を入れるだけで解消することも多い

rsyslog のログ重複は、

「どこで何回処理されているか」

を整理すれば、確実に解消できます。

目次