Linuxのログはどこにある?/var/logの主要ファイルとlast・tail・grepでの閲覧方法

/var/log/messagesやsecureなど主要ログファイルの役割、last・who・lastlogによる履歴確認、tail -fやgrepでのリアルタイム監視・検索、logrotateによるログローテーションの仕組みまで解説します。

Linuxシステムは、システムの動作状況、エラー、セキュリティイベントなどを記録するために様々なログファイルを生成します。これらのログファイルは、システムの監視、トラブルシューティング、セキュリティ監査に不可欠です。ログファイル自体の閲覧権限については Linuxのパーミッション完全ガイド も参考にしてほしい。

主要なログファイル

ログファイルは通常 /var/log ディレクトリ以下に保存されています。

1. /var/log/messages (または syslog)

  • 内容: システム全体の一般的な情報、カーネルメッセージ、システムデーモンからのメッセージ、ハードウェア関連のイベントなどが記録されます。
  • 場所: ディストリビューションによってファイル名が異なります。
    • Red Hat系 (CentOS, Fedora): /var/log/messages
    • Debian系 (Ubuntu): /var/log/syslog

2. /var/log/secure (または auth.log)

  • 内容: 認証関連のイベント、セキュリティ関連の情報が記録されます。ログイン試行、sudoコマンドの実行、SSH接続などが含まれます。
  • 場所:
    • Red Hat系: /var/log/secure
    • Debian系: /var/log/auth.log

3. /var/log/wtmp

  • 内容: システムへのログインおよびログアウトの履歴が記録されます。バイナリ形式で保存されており、直接テキストエディタで開いても読めません。
  • 閲覧コマンド: last
    last
    
    このコマンドは、ユーザーのログイン/ログアウト履歴、システムのリブート履歴などを表示します。

4. /var/run/utmp (または /var/log/utmp)

  • 内容: 現在ログインしているユーザーの情報が記録されます。これもバイナリ形式です。
  • 閲覧コマンド: who, w, users
    who    # 現在ログインしているユーザーの一覧
    w      # 現在ログインしているユーザーと、そのユーザーが実行しているプロセス
    users  # 現在ログインしているユーザー名のみ
    

5. /var/log/lastlog

  • 内容: 各ユーザーの最終ログイン日時が記録されます。これもバイナリ形式です。
  • 閲覧コマンド: lastlog
    lastlog
    
    このコマンドは、システム上の全ユーザーの最終ログイン情報を表示します。

ログファイルの閲覧と管理

ログファイルは時間とともに大きくなるため、定期的な管理が必要です。

  • リアルタイム監視: tail -f /var/log/syslog のように -f オプションを付けて tail コマンドを使用すると、ログファイルの末尾に追記される内容をリアルタイムで表示できます。
  • 検索: grep コマンドを使って、特定のキーワードを含む行を検索できます。
    grep "error" /var/log/messages
    
  • ページング: lessmore コマンドを使って、長いログファイルをページ単位で閲覧できます。
    less /var/log/secure
    
  • ログローテーション: logrotate サービスが、ログファイルを定期的に圧縮、削除、または新しいファイルに切り替えることで、ディスク容量の消費を抑えます。設定は /etc/logrotate.conf/etc/logrotate.d/ ディレクトリ内のファイルで行われます。

これらのログファイルとコマンドを理解することで、Linuxシステムの健全性を維持し、問題発生時に迅速に対応できるようになります。

よくある質問(FAQ)

Q. /var/log/messagesと/var/log/secureの違いは? A. /var/log/messages(Debian系では syslog)はシステム全体の一般的な情報やカーネルメッセージを記録する。一方 /var/log/secure(Debian系では auth.log)はログイン試行やsudoコマンドの実行、SSH接続など認証・セキュリティ関連のイベントを記録する。

Q. ログをリアルタイムで監視するには? A. tail -f /var/log/syslog のように -f オプションを付けて tail コマンドを使うと、ログファイルの末尾に追記される内容をリアルタイムで表示できる。特定のキーワードだけ追いたい場合は grep "error" /var/log/messages のように grep と組み合わせるとよい。

Q. ログファイルが際限なく大きくならないようにする仕組みは? A. logrotate サービスが、ログファイルを定期的に圧縮・削除・切り替えすることでディスク容量の消費を抑える。設定は /etc/logrotate.conf/etc/logrotate.d/ ディレクトリ内のファイルで行う。

関連書籍

ログの読み方やコマンドの基礎をさらに体系的に学びたい方には、以下の書籍がおすすめです。

新しいLinuxの教科書 第2版(三宅英明・大角祐介、SBクリエイティブ)

他の分野の定番書は エンジニアにおすすめの技術書10選 にまとめている。