システムログを理解する
`/var/log`を調べ、`journalctl`を使ってシステム、アプリケーション、セキュリティのログを解釈し、デバッグや監査に役立てます。
「システムログを理解する」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
サーバーが日誌をつける理由
サーバーを忙しく働く作業員だと想像してみましょう。Web サイトの実行からデータの処理まで、さまざまなタスクを行っています。サーバーが何をしてきたか、どうすれば把握できるでしょうか。
- システムログは、サーバーの日誌のようなものです。
- イベント、エラー、警告など、さまざまなアクティビティを記録します。
- これらのログは、サーバーの動作を理解し、問題をデバッグし、セキュリティを維持するうえで重要です。
ログの保管場所:/var/log
Linux システムでは、従来のログファイルの大半が特定のディレクトリに保存されます。それが /var/log です。
このディレクトリは、システム、サービス、アプリケーションのログをまとめて保管する場所です。問題のトラブルシューティングでは、まずここを確認することがよくあります。
/var/log の中を確認する
ls コマンドを使って、Linux サーバーの /var/log ディレクトリに通常どのようなログファイルがあるか確認してみましょう。
多くのファイルが表示されます。ファイル名には、記録対象のサービス名やイベントの種類が使われていることがよくあります。
ls -lh /var/log知っておきたい主なログファイル
/var/log には多くのファイルがありますが、特によく使われるものがあります。
syslog(またはmessages):一般的なシステムアクティビティ、カーネル以外の起動メッセージ。auth.log(またはsecure):認証の試行、sudo の使用、セキュリティ関連のイベント。kern.log:カーネル関連のメッセージ。ハードウェアやドライバーの問題を調べる際に役立ちます。boot.log:システムの起動中に記録されたメッセージ。
journalctl による最新のログ管理
systemd を使用する最近の Linux ディストリビューションでは、ログは構造化されたロギングシステムである journal によって管理されることがよくあります。
systemd journal を操作する主なコマンドラインユーティリティは journalctl です。強力なフィルタリング機能と表示機能を備えています。
journalctl を初めて使う
最初からすべての journal エントリを表示するには、journalctl を実行するだけです。less と同様に、ページ単位でログが表示されます。
ビューアーを終了するには q を押してください。
journalctlサービスと時刻でフィルタリングする
journalctl はフィルタリングに優れています。特定のサービスや時間帯にログを絞り込めます。
-u <service>:特定の systemd ユニットのログを表示します(例:sshd、nginx)。--since "time":指定した時刻以降のログを表示します(例:"1 hour ago"、"2023-01-01")。
journalctl -u sshd --since "1 hour ago"-f によるリアルタイム監視
問題を積極的にデバッグしているときや、新しいイベントを監視しているときは、journalctl -f が非常に便利です。-f(follow)オプションを使うと、新しいログエントリがリアルタイムで流れてきます。
実行した状態で別のターミナルを開き、SSH でログインしてみてください。新しいエントリが表示される様子を確認できます。
journalctl -f問題解決に役立つログ
システムログはデバッグの強い味方です。サービスが起動しなかったり、アプリケーションがクラッシュしたりした場合は、次のことを行います。
- そのサービス固有のログを確認します(例:
journalctl -u myapp.service)。 error、fail、warning、permission deniedなどのキーワードを探します。- ログには、根本原因の特定に役立つ正確なエラーメッセージや手がかりが記録されていることがよくあります。
ログ探偵クイズ
最近のシステム更新後に起動しなくなった、nginx という名前の Web サーバーサービスをデバッグしているとします。すぐに原因を診断するには、次の journalctl コマンドのうちどれが最も役立つでしょうか。
まとめ:ログ活用スキルを強化する
よくできました。システムログを活用する方法を学びました。
- ログはデバッグと監査に欠かせない重要な記録です。
/var/logは、多くのログファイルが保存される従来の場所です。journalctlは、systemd journal のログを検索するための最新かつ強力なツールです。- サービスや時刻でログをフィルタリングしたり、リアルタイムで追跡したりできます。
このスキルを磨き続けましょう。問題が発生したとき、ログは最初に確認すべき場所であることがよくあります。
よくある質問
「システムログを理解する」レッスンは無料ですか?
はい。「システムログを理解する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
「システムログを理解する」で何を学びますか?
`/var/log`を調べ、`journalctl`を使ってシステム、アプリケーション、セキュリティのログを解釈し、デバッグや監査に役立てます。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「システムログを理解する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- システム監視ツール
- システムログを理解する
- ログローテーションとアーカイブ
- 集中監視とアラート