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


35

私はよく「カーネルリングバッファ」、「ユーザーレベル」、「ログレベル」、および他のいくつかの単語が一緒に表示されるのを見ました。例えば

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

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

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

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

「レベル」によって、複数のレベルの階層を想像できますか?

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

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

回答:


41

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

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

カーネルから送信されないログはすべて、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(たとえば)の違いは、レベルではなく、施設またはカテゴリに関係しています。カテゴリはマンページにも記載されています。


ありがとう。(1)「ユーザーレベル」は「ユーザースペース」に関連していますか?あなたが言ったことから、(2)、/var/log/kern.logおよび/var/log/dmesgカーネルメッセージと同じ内容を持っている必要がありますか?しかし、それらの内容は同じではありません。
ティム

私の知る限り、「ユーザーレベル」は問題ではありません。syslogレベルがあります。これはsyslogメッセージの「重要度」レベルであり(レベルをリストしました)、ユーザースペースとカーネルスペースとは何の関係もありません。ブート時/var/log/kern.logdmesgコンテンツ(おそらく異なるフォーマット)を含める必要があります。起動してから長い時間が経過していない限り、それらのコンテンツは削除されています。
セラダ

2番目の質問はdmesg、カーネルリングバッファーの現在の値を出力する一方で、バッファーの過去/古い値はに保存され/var/log/dmesgます。したがって、dmesg出力は/var/log/dmesgコンテンツの最近のサブセットに過ぎず、 それらは異なります。次に、/var/log/dmesgdmesgあなたのコメントと/var/log/kernel.logは異なり)の内容は同じですか?
ティム

ときに依存します!起動後すぐに、/var/log/dmesgコンテンツはの終わり近くにある可能性があり/var/log/kern.logます。ずっと後に、そこにはなく、回転してしまいます。一般に、/var/log/kern.logカーネルのログリングバッファーの特定のスナップショットよりも古いログと、スナップショットよりも新しいログが含まれます。
セラダ


17

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

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

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

dmesgLinuxの下では、util-linuxkernel.orgが公開するシステムメンテナンスツールの必須パッケージの一部です。dmesg(1)マニュアルページによると、

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

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

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

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

これが少なくともお問い合わせの最初の部分に役立つことを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.