「サービスが起動しない…」「エラーが出ているが何が原因かわからない…」そんなトラブルの第一歩はログの確認です。この記事ではLinuxのログファイルの見方と管理方法を解説します。
/var/log/ のログファイル一覧
Linuxのログファイルは主に /var/log/ ディレクトリに保存されます。なお、ログファイルのパスはディストリビューションによって異なります。Ubuntu/Debian 系では /var/log/auth.log(認証ログ)ですが、RHEL/CentOS 系では /var/log/secure になります。systemd 環境では journalctl コマンドで一元的に確認できます。

# ログファイルの末尾を確認(最新のログが末尾にある)
$ 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 コマンドでシステムログを集中管理できます。

# 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入門チートシート完全版で全コマンドを一気に復習できます。



コメント