Linux入門

ログファイルの見方と管理【journalctl/logrotate完全解説】

Linux入門
記事内に広告が含まれています。

「サービスが起動しない…」「エラーが出ているが何が原因かわからない…」そんなトラブルの第一歩はログの確認です。この記事ではLinuxのログファイルの見方と管理方法を解説します。

/var/log/ のログファイル一覧

Linuxのログファイルは主に /var/log/ ディレクトリに保存されます。なお、ログファイルのパスはディストリビューションによって異なります。Ubuntu/Debian 系では /var/log/auth.log(認証ログ)ですが、RHEL/CentOS 系では /var/log/secure になります。systemd 環境では journalctl コマンドで一元的に確認できます。

/var/log/ 主要ログファイル一覧
▲ まず syslog を確認。認証関連は auth.log、Nginxなどサービスは専用ログを確認する
# ログファイルの末尾を確認(最新のログが末尾にある)
$ tail -50 /var/log/syslog

# エラーを含む行だけ抽出
$ grep -i "error" /var/log/syslog | tail -20

# 認証ログを確認(不正アクセス調査)
$ sudo tail -100 /var/log/auth.log | grep "Failed"

journalctl:systemdのログを確認する

systemd(Ubuntu 16.04以降など)では journalctl コマンドでシステムログを集中管理できます。

journalctlコマンド早見表
▲ -u でサービス指定、-f でリアルタイム追跡、-p err でエラーのみ表示が定番パターン
# nginxが起動しない場合の調査
$ sudo journalctl -u nginx -n 50

# 今日のエラーログを表示
$ journalctl -p err --since "today"

# 特定時刻範囲のログ
$ journalctl --since "2025-01-01 00:00:00" --until "2025-01-01 06:00:00"

logrotate:ログファイルを自動管理する

ログファイルを放置するとディスクが満杯になります。logrotate はログファイルを自動でローテーション(古いファイルを圧縮・削除)するツールです。

# logrotateの設定ファイル
/etc/logrotate.conf          # グローバル設定
/etc/logrotate.d/            # サービス別の設定

# 設定例(/etc/logrotate.d/myapp)
/var/log/myapp/*.log {
    daily              # 毎日ローテーション
    rotate 14          # 14世代分保持
    compress           # gzipで圧縮
    delaycompress      # 1つ前の世代から圧縮
    missingok          # ファイルがなくてもエラーにしない
    notifempty         # 空ファイルはローテーションしない
}

# logrotateを手動実行(テスト)
$ sudo logrotate -d /etc/logrotate.d/myapp  # -d はドライラン

まとめ

  • ログは /var/log/ に保存。まず syslog、サービス固有は専用ログを確認
  • tail -f /var/log/syslog:リアルタイムでシステムログを監視
  • journalctl -u サービス名 -f:サービスのログをリアルタイム追跡
  • journalctl -p err:エラーレベル以上のログのみ表示
  • logrotateでログの自動圧縮・削除を設定してディスク満杯を防ぐ

関連記事

📋 Linux入門チートシート完全版で全コマンドを一気に復習できます。

コメント

タイトルとURLをコピーしました