Linux
 Computer >> コンピューター >  >> システム >> Linux

Ubuntuエラーログの見方・監視方法を徹底解説!トラブルシューティングのためのステップバイステップガイド

Ubuntuエラーログの見方・監視方法を徹底解説!トラブルシューティングのためのステップバイステップガイド

HannahはCyberPatriot競技を通じてLinuxに魅了されました。幼い頃からプログラミングやコンピュータ修理などを学び、良質なドキュメントの価値と、経験のない人にとって役立たないドキュメントがいかに多いかを理解するようになりました。その経験から、分かりやすく実用的なドキュメント作りを目指しています。現在はイースタン・ニューメキシコ大学でコンピュータサイエンスを専攻し、プログラミングやLinuxなどの分野を中心に学んでいます。

2023年4月からMakeUseOfで執筆しており、Linux、プログラミング、DIY、買い物ガイドなどのジャンルを担当しています。地元紙ENMUの「The Chase」への寄稿に加え、KENW News 3ではニューメキシコ州民に向けて最新かつ正確なニュースを届けることに情熱を注いでいます。

パソコンが正常に動作しないのに原因が分からないときほど、ストレスが溜まるものはありません。Ubuntuで遭遇するすべての問題に簡単な解決策があるわけではありませんが、Ubuntuのエラーログなどのリソースを活用すれば、トラブルの切り分けと診断が格段にしやすくなります。

Ubuntuのログとは?

Ubuntuのログとは、パソコン上で発生するすべてのイベントの記録を保存する包括的なファイル群です。ハードウェア、オペレーティングシステム、さらには一部のソフトウェアに関する情報も記録されています。

これらのログは、トラブルシューティングと診断のプロセスにおいて非常に貴重です。タイムスタンプ、文脈、システム全体で発生するイベントに関する詳細情報などが提供されます。ログを活用するには、まず重要なログの種類を把握しておく必要があります。

Ubuntuの主なログの種類

Ubuntuは、すべての情報を1つのログに書き込むのではなく、目的別に複数のログへ記録を振り分けています。ログの数は非常に多く、すべてを挙げることはできませんが、トラブルシューティングに取りかかる前に知っておくべき重要なログ(およびログの種類)がいくつかあります。

Ubuntuエラーログの見方・監視方法を徹底解説!トラブルシューティングのためのステップバイステップガイド

中でも最も重要なのがsystemdジャーナルです。systemdはLinuxにおける不可欠なサービスマネージャーであり、そのため、さまざまなOSサービスに関する問題がsystemdジャーナルに記録されます。このログはjournalctlコマンドで参照できます。

システムログも非常に重要です。これらはUbuntuの各部分に直接関係するログで、システムメッセージなどが含まれます。主なシステムログには以下のようなものがあります。

  • 認証ログ(Authorization Log):sudoコマンドやユーザーログインなど、認証を必要とするすべてのプロセスが記録されます。
  • デーモンログ(Daemon Log):BluetoothやSSHなど、バックグラウンドサービス(デーモン)に関するログです。
  • デバッグログ(Debug Log):システムおよびsyslogdにログを出力するアプリケーションが提供するデバッグ情報が含まれます。
  • カーネルログ(Kernel Log):Linuxカーネルに関わるアクティビティの記録が含まれます。
  • システムログ(System Log):システム上のほとんどのグローバルなアクティビティの記録が保存されます。
  • 失敗ログ(Fail Log):ログイン失敗の記録が保存されるため、誰かがシステムへの不正アクセスを試みていないかを確認する際に特に役立ちます。

また、ApacheやMySQLなどのアプリケーションログが/var/logディレクトリに保存されている場合もあります。lsコマンドを使えば、現在パソコンに保存されているすべてのログファイルを一覧表示できます。

ls /var/log

Ubuntuでログを読む方法

システム上のさまざまなログの種類を理解したところで、次はそれらが保存している情報を詳しく見ていきましょう。その前に、重要な注意点があります。すべてのシステムログが同じ形式で書かれているわけではないということです。

一部のログはプレーンテキストファイルとして保存され、他のログはバイナリファイルとして保存されます。システム上のレコードを効果的に解析したいなら、両方のファイル形式と、それぞれに対応するコマンドラインツールに慣れておく必要があります。

プレーンテキスト形式のログは、RSYSLOG_TraditionalFileFormatというテンプレートを使用し、「タイムスタンプ」「ホスト名」「アプリケーション」「メッセージ」という4つの基本フィールドで構成されます。たとえば、カーネルログはこのテンプレートに従っています。

Ubuntuエラーログの見方・監視方法を徹底解説!トラブルシューティングのためのステップバイステップガイド

プレーンテキストのログとは異なり、バイナリファイルのログは簡単には読めません。utmp、wtmp、btmpといったログを読むには、それぞれwho、last、lastbなどのコマンドラインユーティリティが必要です。また、utmp系のログ用のutmpdumpや、journald用のsystemctlなど、バイナリログ情報を読みやすい形式で出力するために設計されたコマンドもあります。

ほとんどの場合、ターミナルでこれらのログを効率的に解析する方法を知っておくことが重要です。grepやtailなどのコマンドを使えば、システムログ全体を根気よく読み通すことなく、必要な情報だけを抽出できます。

特に便利なコマンドには以下のようなものがあります。

  • grep:ファイル内の文字列を検索します
  • tail:ファイル末尾の10行を出力します
  • head:ファイル先頭の10行を出力します
  • sort:指定した条件に従って並べ替えたファイルの内容を出力します

utmpdumpやsystemctlなどのコマンドラインツールにも便利なフラグ(オプション)があり、ターミナル作業の際に覚えておくとよいでしょう。これらのフラグを使うことで、コマンドの動作を変更し、ターミナルに出力される内容をより細かく制御できます。

journalctlコマンドで特に役立つフラグには以下のようなものがあります。

  • -b:最後の再起動以降に収集されたエントリのみを返します
  • --since “YYYY-MM-DD HH:MM:SS” --until “YYYY-MM-DD HH:MM:SS”:指定した日時以前および/または以降のエントリのみを返します
  • -p NUM:syslogの優先度レベル(0/emerg〜7/debug)でエントリをフィルタリングします

Ubuntuログを使ったエラーのトラブルシューティング

システムログの種類と読み方を理解したら、あとは集めた情報をトラブルシューティングに活かすだけです。このプロセスにはある程度の創意工夫が必要になることもあります。

トラブルシューティングに取りかかる際は、まず直面している問題の特徴的な性質について考えるのがよいでしょう。特定のアプリケーションを開いたときに問題が発生しますか? 問題が発生するたびにシステムがクラッシュして再起動しますか?

問題の特徴を考えることで、その問題に関する情報を得るのに最適なログが自然と見えてきます。たとえば、起動プロセス中にシステムに問題が発生している場合は、journaldのブートエントリを参照すると有益な情報が得られるかもしれません。

次のコマンドを入力すると、journaldに記録されたすべてのブート履歴が出力されます。

journalctl --list-boots

ターミナルにはブートの記録一覧が表示され、最新のブートほどリストの下側に表示されます。各ブートの記録された日時を確認し、エラーが発生したブートを見つけましょう。

左端の列の番号をNUMとして、次のコマンドを入力すると、そのブートに関する詳細情報を取得できます。

journalctl -b -NUM -n

ブートに関する包括的な情報の記録が表示されます。起動プロセス中に異常なエラーが発生していた場合は、この記録の情報を手がかりに、トラブルシューティングを一歩進めることができます。

Ubuntuエラーログの見方・監視方法を徹底解説!トラブルシューティングのためのステップバイステップガイド

同じ原理は他の多くの問題にも当てはまります。ただし、パソコンで何が起きているのかあまり分からない場合は、どこから手をつければよいか難しいこともあるでしょう。Ubuntuシステムの幅広い問題に対して特に役立つログがいくつかあります。

トラブルシューティングの出発点としてはsyslogが最適です。実質的にグローバルなログであるため、扱っている問題に関する情報が含まれている可能性が非常に高いからです。認証の問題(たとえばsudoパスワードが機能しないエラーなど)や起動の問題がある場合は、auth.logやboot.logを確認しましょう。

問題に関連するキーワードで、最も関連性の高いログを検索します。たとえば、認証に問題がある場合は、次のコマンドでauth.logから該当するレコードを抽出できます。

cat /var/log/auth.log | grep 'Authentication failure'

最終的には、優れた洞察をもたらす情報に必ず出会えるはずです。エラーログから得た情報とWebでの調査を組み合わせれば、システムの問題を短時間で解決できるリソースにきっとたどり着けるでしょう。

オンラインリソースを活用してLinuxエラーを解決しよう

トラブルシューティングを一人で抱え込む必要はありません。パソコンの問題に関する情報を集めながら、Ask UbuntuやMakeUseOfの詳細なガイドなどのオンラインリソースを活用すれば、診断と修復の完成にぐっと近づけるでしょう。

  1. Linuxのスクリーンショット機能を徹底比較:7つの人気デスクトップ環境

    各Linuxデスクトップ環境には、それぞれ専用のスクリーンショットユーティリティが搭載されています。多くは似たような機能を備えていますが、それが使いやすさも同等であることを意味するわけではありません。どれが最も洗練されたデザインなのか?どれが最も高機能なのか?オープンソースソフトウェアの世界では、複数のデスクトップ環境が同じスクリーンショットツールを共用していることも珍しくありません。そこで本記事では、最も人気のあるLinuxデスクトップ環境におけるスクリーンショット体験を詳しく見ていきます。1. GNOMEGNOMEはバージョン40で大規模な再設計が行われましたが、その影響はデスクトップの見

  2. Fedora 37リリース:新エディションと開発者向け機能でさらに進化

    Linuxディストリビューション「Fedora」を手掛けるFedoraプロジェクトは、最新版となるバージョン37の正式リリースを発表しました。Fedora 37の主な新機能Red Hatのディスティングイッシュドエンジニアであり、Fedoraプロジェクトマネージャーを務めるマシュー・ミラー氏は、Fedora Magazineのブログ記事で次のように述べています。「本日、何千人ものFedoraプロジェクトのコントリビューターたちの努力の結晶であるFedora Linux 37のリリースをお知らせできることを嬉しく思います。最新リリースがもたらすものを一緒に見ていきましょう。」新エディション「Co