/var/logをrsyslogで埋めると、システムがクラッシュします。

/var/logをrsyslogで埋めると、システムがクラッシュします。

時には、プロセスが間違ってログ/var/logが増えすぎて、最終的にパーティション全体を埋めることがあります。

サフィックス設定エラーのため、サーバー上で一度、USBプリンタのためにデスクトップ上で1回発生しました(正確に何が間違っているかはわかりませんが、ログにはこの問題がいっぱいであることだけがわかります(hp) did not claim interface 1 before use)。

根本的な原因はロガーではなくアプリケーションであることを知っています。しかし、この弱点が残念だという考えを消すことはできません。特にデスクトップでは、プリンタはシステムパーティション全体を埋め、次の実行時にユーザーがGUIをロードするのを防ぎます(スペースなし/tmp)。これは技術者以外の人にとっては完全にオフになっています。

  • logrotate毎日または毎週働くので、答えではありません。

  • rsyslogそれを取る最大サイズ、最大サイズの操作設定オプションがありますが単純ではないようで、ドキュメント自体によると、将来のバージョンでは問題が発生する可能性があります。

  • ただし、/var/log専用パーティションを配置すると、これが発生するのを防ぎます。

私が知っている限り、別々のパーティションを使用することが/var/logこの問題を解決する唯一の方法です。時々これが提案されているのを見ますが、Debian インストーラのデフォルトではありません。そうすべきでしょうか?

これを避ける他の簡単な方法はありますか?ディレクトリに最大サイズを指定する方法/var/logrsyslog

この問題は、デフォルトで有効になっている保護メカニズムを正当化するのに十分な頻度で発生しますか? (特に家庭用/デスクトップのインストールを検討しているので、ユーザーが直接処理することはできません。)

編集:Syslog速度制限

ありがとうジュリー・ペレティへの回答、見つかりました。速度制限メカニズムrsyslogはこれらの要件を正確に満たし、デフォルトで有効にする必要があります。

ロギングプロセスが過度に実行される問題を回避するために、5.7.1以降の入力レート制限を使用できます。同じプロセスが SysSock.RateLimit.Interval*SysSock.RateLimit.Burst よりも多くのログメッセージをエクスポートする場合、SysSock.RateLimit.Severity 以下のログメッセージは削除されます。

ただし、PIDが変更された場合、SystemLogRateLimitは何の影響もありません。これドキュメントページ速度制限機能をテストする方法を説明し、次のように言います。

速度制限は、同じPIDが与えられた場合にのみ機能します。

そのため、ここには適用されないようです。

私のデスクトップから:

Jul 25 21:34:36 bouzin kernel: [46038.140491] usb 1-5: usbfs: process 12126 (hp) did not claim interface 1 before use
Jul 25 21:34:36 bouzin kernel: [46038.140546] usb 1-5: usbfs: process 12127 (hp) did not claim interface 1 before use
Jul 25 21:34:36 bouzin kernel: [46038.140606] usb 1-5: usbfs: process 12128 (hp) did not claim interface 1 before use
Jul 25 21:34:36 bouzin kernel: [46038.140675] usb 1-5: usbfs: process 12129 (hp) did not claim interface 1 before use
Jul 25 21:34:36 bouzin kernel: [46038.140740] usb 1-5: usbfs: process 12130 (hp) did not claim interface 1 before use
Jul 25 21:34:36 bouzin kernel: [46038.140809] usb 1-5: usbfs: process 12131 (hp) did not claim interface 1 before use
Jul 25 21:34:36 bouzin kernel: [46038.140868] usb 1-5: usbfs: process 12132 (hp) did not claim interface 1 before use
Jul 25 21:34:36 bouzin kernel: [46038.140928] usb 1-5: usbfs: process 12133 (hp) did not claim interface 1 before use
Jul 25 21:34:36 bouzin kernel: [46038.140988] usb 1-5: usbfs: process 12134 (hp) did not claim interface 1 before use
Jul 25 21:34:36 bouzin kernel: [46038.141046] usb 1-5: usbfs: process 12135 (hp) did not claim interface 1 before use

私のサーバーから:

Jul  5 13:37:45 server postfix/smtpd[426]: NOQUEUE: reject_warning: RCPT from unknown[177.11.51.178]: 451 4.3.0 <[email protected]>: Temporary lookup failure; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail.SERVER.TEST>
Jul  5 13:37:45 server postfix/smtpd[437]: NOQUEUE: reject_warning: RCPT from unknown[177.11.51.178]: 451 4.3.0 <[email protected]>: Temporary lookup failure; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail.SERVER.TEST>
Jul  5 13:37:45 server postfix/smtpd[426]: NOQUEUE: reject_warning: RCPT from unknown[177.11.51.178]: 451 4.3.0 <[email protected]>: Temporary lookup failure; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail.SERVER.TEST>
Jul  5 13:37:45 server postfix/smtpd[437]: NOQUEUE: reject_warning: RCPT from unknown[177.11.51.178]: 451 4.3.0 <[email protected]>: Temporary lookup failure; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail.SERVER.TEST>

したがって、IIUC rsyslogのレート制限機能は、各ログ行が異なるプロセスによって作成されるため、ここでは関係ありません。

編集2:ディレクトリサイズの制限

/var/log私は次のように仮想ファイルシステムのサイズを制限しました。ここ)。

次にLinuxをインストールするときに別々のパーティションを設定するようです。

この質問は答えではなく解決策だと思うので、今は開いておきます。

ベストアンサー1

rsyslogデフォルトでは、このモジュールには速度制限オプションが含まれていますimuxsock

デフォルトは 5 秒ごとに 200 個のメッセージですが、モジュールを読み込んだ後、次の設定で簡単に変更できます。

$SystemLogRateLimitInterval 5
$SystemLogRateLimitBurst 200

$SystemLogRateLimitInterval秒単位の間隔(間隔を増やす必要があります)、およびは$SystemLogRateLimitBurstその間隔内でアプリケーションが許可する最大メッセージ数(間隔を減らす必要があります)です。

アップデート:アップデートによってエラーが発生したため、syslogは他のプロセスIDにあふれており、デーモンはこれを効率的に処理するための実際の方法はありません。

したがって、最大ファイルサイズのログ回転ルールを変更することが唯一の回避策です。通常のログ循環プロセスに従って圧縮すると、これらの大容量ファイルの内容が重複するため、サイズが小さくなります。

おすすめ記事