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システムの健全性を維持し、問題発生時に迅速に対応できるようになります。