rsyslogのimjournalモジュールで問題が発生しました。ここで説明した問題、システムログによる合併症
ログは、緊密なループから同じデータを返し続けます。これにより、rsyslog 内で多数のメッセージが重複し、システム リソースが枯渇した場合にサービス拒否が発生する可能性があります。
それにもかかわらず、プロセッサが数ヶ月前のメッセージを繰り返すのを防ぎます。 rsyslogとJournaldが基本的に非常に密接に結合していることを知らなかったので、入力に従来より効率的なライブソケットを使用するように電子を再構成しました。このガイドライン:
$ModLoad imuxsock
$OmitLocalLogging off
これはソケットの作成と使用に関する限り動作するようです。ところでテストをしてみると変な点を発見しました。
> logger "hello world"
結果/var/log/syslog
はに記載されています。一度だけ存在するrsyslog.conf
:
Apr 17 10:35:45 pidora logger: hello world
Apr 17 10:35:45 pidora logger: hello world
メッセージは他のすべてのメッセージと同様に繰り返されます。そのうちのいくつかはまったく同じですが、一部は1つの点でのみ異なります。
Apr 17 10:42:26 pidora systemd[1]: Stopping System Time Synchronized.
Apr 17 10:42:26 pidora systemd: Stopping System Time Synchronized.
これは[1]
pidです。私は何が起こっているのか、rsyslogはアプリケーションからメッセージを一度取得し、ログから再びインポートすると信じています。
これは少し愚かなことです。どうやって防ぐことができますか?
ベストアンサー1
私は何が起こっているのか、rsyslogはアプリケーションからメッセージを一度取得し、ログから再びインポートすると信じています。
はい。解決策は次の項目に含めることです/etc/systemd/journald.conf
。
ForwardToSyslog=no
使用時にこの問題が発生しない理由はimjournal
わかりませんが、ここにヒントがありますman journald.conf
。
システムログに転送=
[...]ロギングデーモンはレガシーsyslogデーモンに渡す必要があります。 [...] syslogへの転送が有効になっているが実行中のsyslogデーモンがない場合、そのオプションは効果がありません。
「syslogデーモンが実行中」ということが実際に意味するのは、文字通り伝統的なsyslogソケットが存在するということです。