web-dev-qa-db-ja.com

「カーネルリングバッファー」、「ユーザーレベル」、「ログレベル」の概念は何ですか?

「カーネルリングバッファー」、「ユーザーレベル」、「ログレベル」などの単語が一緒に表示されることがよくありました。例えば.

/ var/log/dmesgカーネルリングバッファー情報が含まれます。

/var/log/kern.logログレベルのカーネルのメッセージのみが含まれます

/var/log/user.logすべてのユーザーレベルのログに関する情報が含まれています

それらはすべてログに関するものですか?それらはどのように関連し、異なっていますか?

「レベル」によって、私は複数のレベルの階層を想像するでしょうか?

「ユーザーレベル」は「ユーザースペース」に関連していますか?

それらは何らかの方法で ランレベル または 保護リング に関連していますか?

39
Tim

はい、これはすべてロギングに関係しています。いいえ、ランレベルや「保護リング」とは関係ありません。

カーネルはそのログをリングバッファーに保持します。これの主な理由は、syslogデーモンが起動してログを収集する機会を得るまで、システム起動からのログが保存されるためです。そうしないと、syslogデーモンの起動前のログは記録されません。そのリングバッファの内容は、dmesgコマンドを使用していつでも確認でき、syslogデーモンが起動しているときと同じように、その内容も/var/log/dmesgに保存されます。

カーネルに由来しないすべてのログは、生成時にsyslogデーモンに送信されるため、バッファーに保持されません。カーネルログも、生成時にsyslogデーモンによって取得されますが、引き続き(不必要に、間違いなく)リングバッファーに保存されます。

ログレベルは syslog(3)マンページ に記載されており、以下のとおりです。

  • LOG_EMERG:システムは使用できません
  • LOG_ALERT:アクションはすぐに実行する必要があります
  • LOG_CRIT:重大な状態
  • LOG_ERR:エラー状態
  • LOG_WARNING:警告状態
  • LOG_NOTICE:正常ですが重要な状態
  • LOG_INFO:情報メッセージ
  • LOG_DEBUG:デバッグレベルのメッセージ

各レベルは、前のレベルよりも「重要度」が低くなるように設計されています。 1つのレベルでログを記録するログファイルは、より重要なレベルすべてのログも記録します。

(たとえば)/var/log/kern.log/var/log/mail.logの違いは、レベルではなく施設またはカテゴリに関係しています。カテゴリはマンページにも記載されています。

44
Celada

dmesgに関する質問の少なくとも最初の部分に回答するには

_/var/log/dmesg_は、「カーネルリングバッファー」の内容を格納します。これは、ブートローダーがブートローダーフェーズを通過するとすぐに生成されるログデータを格納するブート時にカーネルによって作成されるメモリバッファーです。

リングバッファは、常に一定のサイズである特別な種類のバッファであり、新しいメッセージが着信すると最も古いメッセージを削除します。カーネルリングバッファに格納されているテキストは、Unixを初めて起動したときに画面上で点滅します。 -コンソールモードのマシン(スプラッシュスクリーンなし、プリマス)。カーネルログはメモリバッファーに保存されるので、システムがsyslogデーモンが引き継ぐことができるポイントまでブートストラップされるまで、ブートログはどこかにあるはずです。

Linuxでのdmesgは、kernel.orgによって公開されているシステムメンテナンスツールの不可欠な_util-linux_パッケージの一部です。 dmesg(1) manページによると、

dmesgは、カーネルリングバッファを検査または制御するために使用されます。

参照: http://www.computerhope.com/unix/dmesg.htm

'systemd' initでは、このコマンドを使用してカーネルリングバッファーを出力できます。
_# journalctl --dmesg or journalctl -k_、修正用thxs @don_crissti

たとえば、コマンド_dmesg | grep -i ethernet_を発行すると、文字列「ethernet」のカーネルリングバッファーが解析されます。

これが少なくともお問い合わせの最初の部分でお役に立てば幸いです。

17
nomadrc