web-dev-qa-db-ja.com

systemdジャーナルへのカーネルロギングを無効にするにはどうすればよいですか?

カーネルメッセージを過度にスパムするデバイスを使用しています(毎秒10〜100メッセージ、Mediatekドライバー...)。カーネル自体からログを削除することは不可能です(数百のファイルに分散)。

このデバイスではdmesgはほとんど役に立たないことを受け入れましたが、残念ながらsystemdジャーナルも影響を受けます。

Systemdジャーナルへのカーネルメッセージのロギングをフィルタリング/無効化することは可能ですか?

4
Luke F

Linux/Sysadminの良い習慣としては、カーネルメッセージを大量に無効にするのではなく、fzbdのソリューションのように、必要のない特定のログを黙らせることをお勧めします。

それでもなお、言及する価値はあります systemd 235 以降、journald.confファイル内のカーネルメッセージを無効にするオプションがあります。 main journal.conf docs このオプションについて言及 これにより、journaldが/dev/kmsgを読み取れないようにすることができます。

バージョン235はまだ多くのディストリビューションではまだ見つかっていない可能性があるため、次のコマンドでsystemdバージョンを確認できます。

systemctl --version

バージョン235以降を使用している場合は、最初に元の/etc/systemd/journald.confファイルのバックアップを作成してから、関連する行のコメントを外してyesからnoに変更します。 :

ReadKMsg=no

Journaldサービスを保存して終了し、再起動します。

Sudo systemctl restart systemd-journald.service
6
baelx

デバイスのカーネルモジュールに、無効にできるロギング/デバッグパラメータがあるかどうかを確認します。

modprobe $module_name
ls /sys/module/$module_name/parameters

そうでない場合、バージョンが235未満のsystemdの場合、ログレベルでメッセージをフィルタリングすることが最善の方法です。次に例を示します。

journalctl --priority=3

ログの値はman syslogで確認できます。

kernel.printkを使用してカーネルロギングレベルを下げると、コンソールロギングにのみ影響するため、このパラメーターの値に関係なく、ユーザーランドアプリケーションには同じメッセージが表示されます。

4
fzbd