「/var/log/の下にファイルがたくさんあって、どれが何のログかわからない」
Linuxサーバーのトラブル調査は、適切なログファイルを見つけることが第一歩です。
ログの場所を知らないままコマンドを打ち続けても、原因にはたどり着けません。
この記事では、/var/log/配下の主要なログファイルの役割と確認方法、
syslog/rsyslogの仕組み、journalctlによるsystemdログの確認まで、
実際のサーバー運用で使う手順を解説します。
・/var/log/配下の主要ログファイルとその内容
・tail -fでリアルタイムにログを確認する方法
・journalctlコマンドでsystemdログを確認する方法
・ログを素早く絞り込む実務的なコマンドパターン
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
Linuxのログ管理の仕組み
Linuxでは「どこにどのログが書かれるか」はシステムによって決まっています。まずその仕組みを理解することで、目的のログに素早くたどり着けます。
1. syslogとjournaldの二重構造(CentOS 7以降)
| 仕組み | デーモン | ログの場所 | 特徴 |
|---|---|---|---|
| 従来のsyslog | rsyslog | /var/log/*.log(テキストファイル) | 人間が読めるテキスト形式 |
| systemdのログ | journald | /run/log/journal/(バイナリ) | journalctlコマンドで参照する |
rsyslogはjournaldからログを受け取って/var/log/に書き込むため、
多くのログはどちらの方法でも参照できます。
2. ログファシリティとプライオリティ
syslogでは「ファシリティ(送信元の種別)」と「プライオリティ(重要度)」でログを分類します。・ファシリティの例:kern(カーネル)、auth(認証)、cron(cronジョブ)、daemon(一般デーモン)
・プライオリティの例:emerg(緊急)、alert(警告)、crit(危機的)、err(エラー)、warning(警告)、info(情報)
この分類をもとに/etc/rsyslog.confが「どのログをどのファイルに書くか」を定義しています。
/var/log/配下の主要なログファイル一覧
1. システム全般・認証ログ
# /var/log/messages — システム全般のログ(RHEL/CentOS系) $ tail -50 /var/log/messages Apr 7 10:00:01 web01 kernel: EXT4-fs (sda1): mounted filesystem with ordered data mode. Apr 7 10:00:03 web01 rsyslogd: [origin software="rsyslogd" ...] start Apr 7 10:00:05 web01 systemd: Starting OpenSSH server daemon... Apr 7 10:00:05 web01 sshd[1234]: Server listening on 0.0.0.0 port 22. # /var/log/syslog — Ubuntu/Debian系のシステム全般ログ # (CentOS/RHEL系では/var/log/messagesが相当) $ tail -50 /var/log/syslog # /var/log/secure — SSH/su/sudoなどの認証ログ(RHEL/CentOS系) $ tail -100 /var/log/secure Apr 7 10:15:23 web01 sshd[5678]: Accepted publickey for ec2-user from 203.0.113.1 port 44320 Apr 7 10:20:15 web01 sudo: ec2-user : TTY=pts/0 ; PWD=/home/ec2-user ; USER=root ; COMMAND=/bin/systemctl restart httpd # /var/log/auth.log — Ubuntu/Debian系の認証ログ $ tail -100 /var/log/auth.log
2. Webサーバー・アプリケーションログ
# Apache アクセスログ $ tail -100 /var/log/httpd/access_log 203.0.113.5 - - [07/Apr/2026:10:00:01 +0900] "GET /index.html HTTP/1.1" 200 12345 "-" "Mozilla/5.0..." # Apache エラーログ $ tail -100 /var/log/httpd/error_log [Mon Apr 07 10:00:01.123456 2026] [mpm_prefork:notice] [pid 1234] AH00163: Apache/2.4.6 configured # Nginx アクセスログ $ tail -100 /var/log/nginx/access.log # Nginx エラーログ $ tail -100 /var/log/nginx/error.log
3. システム管理・cronログ
# /var/log/cron — cronジョブの実行ログ $ tail -100 /var/log/cron Apr 7 03:00:01 web01 CROND[9012]: (root) CMD (/opt/scripts/backup.sh) Apr 7 03:00:02 web01 CROND[9012]: (root) CMD (/opt/scripts/backup.sh >> /var/log/backup.log 2>&1) # /var/log/boot.log — 起動時のログ $ cat /var/log/boot.log # /var/log/dmesg — カーネルのリングバッファ(ハードウェア関連) $ dmesg | tail -50 # または $ cat /var/log/dmesg
4. その他の重要なログ
# /var/log/yum.log — yumによるパッケージインストール/更新の記録 $ cat /var/log/yum.log | grep "Apr 7" # /var/log/dnf.log — dnfによるパッケージ管理ログ(RHEL 8/Rocky Linux系) $ cat /var/log/dnf.log | grep "$(date '+%Y-%m-%d')" # /var/log/maillog — メールサーバーのログ $ tail -100 /var/log/maillog Apr 7 10:00:01 web01 postfix/smtpd[1234]: connect from mail.example.com[203.0.113.10] # /var/log/audit/audit.log — SELinuxの監査ログ(auditd) $ tail -100 /var/log/audit/audit.log type=LOGIN msg=audit(1680825600.123:456): pid=1234 uid=0 old-auid=4294967295
ログの確認コマンドと使い分け
1. tail -f でリアルタイム監視
ログを流れで確認したい場合はtail -fを使います。# リアルタイムでログを追いかける(Ctrl+Cで停止) $ tail -f /var/log/messages # 複数ファイルを同時に監視する $ tail -f /var/log/messages /var/log/secure # Apacheのアクセスとエラーログを同時に監視する $ tail -f /var/log/httpd/access_log /var/log/httpd/error_log # 最新の行数を指定する(直近100行から追いかける) $ tail -n 100 -f /var/log/messages
2. grep でエラーを絞り込む
# エラー・警告・失敗のみ絞り込む $ grep -i "error\\|warn\\|fail\\|crit" /var/log/messages | tail -50 # 特定の時間帯のログを抽出する $ grep "Apr 7 10:" /var/log/messages # 特定のサービスのログを抽出する $ grep "sshd" /var/log/secure # アクセスログから特定IPのアクセスを抽出する $ grep "203.0.113.5" /var/log/httpd/access_log | tail -20
3. journalctl でsystemdのログを確認する
# 全ログを表示する(最新が下に表示される) $ journalctl # リアルタイムで追いかける(tail -f相当) $ journalctl -f # 特定のサービスのログを表示する $ journalctl -u httpd $ journalctl -u httpd -f # リアルタイム # エラーのみ表示する $ journalctl -p err # 今回の起動からのログ $ journalctl -b # 時間帯を指定する $ journalctl --since "2026-04-07 10:00:00" --until "2026-04-07 11:00:00" # 最新N行を表示する(tail -n相当) $ journalctl -n 100
4. less でログを効率よく閲覧する
$ less /var/log/messages # less 内の操作 # / : 前方検索 # ? : 後方検索 # n : 次の一致 # G : ファイルの末尾へ # g : ファイルの先頭へ # q : 終了 # F : tail -f モードに切り替え(更新を追いかける)
ログローテーションの仕組み
Linuxのログファイルはlogrotateによって定期的にローテーション(圧縮・削除)されます。古いログを確認する際は、アーカイブされたログファイルを参照します。
# /var/log/messagesの場合、過去のログは数字付きで保存される $ ls -la /var/log/messages* -rw------- 1 root root 524288 Apr 7 23:59 /var/log/messages -rw------- 1 root root 524288 Apr 6 23:59 /var/log/messages-20260407 -rw------- 1 root root 524288 Mar 31 23:59 /var/log/messages-20260331.gz -rw------- 1 root root 524288 Mar 24 23:59 /var/log/messages-20260324.gz # .gz圧縮されたログはzgrepで検索できる $ zgrep "error" /var/log/messages-20260331.gz # または展開して確認する $ zcat /var/log/messages-20260331.gz | grep "error" | tail -20
トラブルシュート:ログが確認できない場合の対処
1. rsyslogが起動していない
# rsyslogのステータス確認 $ sudo systemctl status rsyslog # rsyslogが停止している場合は起動する $ sudo systemctl start rsyslog $ sudo systemctl enable rsyslog
2. ログファイルのパーミッションでアクセスできない
# /var/log/secureはrootのみ読み取り可 $ ls -la /var/log/secure -rw------- 1 root root 12345 Apr 7 10:00 /var/log/secure # sudoを使って確認する $ sudo tail -100 /var/log/secure # または adm グループのユーザーは /var/log/messages を読める $ sudo usermod -aG adm ec2-user # ログアウトして再ログインすると反映される
3. journaldのログが消えている
# journaldのログ保持設定を確認する $ sudo vi /etc/systemd/journald.conf # Storage=auto(デフォルト)は/var/log/journalがあれば永続保存 # Storage=volatile はメモリのみ(再起動で消える) # Storage=persistent は常に永続保存 # /var/log/journalディレクトリを作成して永続化する $ sudo mkdir -p /var/log/journal $ sudo systemd-tmpfiles --create --prefix /var/log/journal $ sudo systemctl restart systemd-journald
本記事のまとめ
Linuxの主要なログファイルと確認コマンドをまとめます。| ログファイル | 内容 | 対象OS |
|---|---|---|
/var/log/messages |
システム全般のログ | RHEL/CentOS/Rocky Linux |
/var/log/syslog |
システム全般のログ | Ubuntu/Debian |
/var/log/secure |
SSH・su・sudo認証ログ | RHEL/CentOS/Rocky Linux |
/var/log/auth.log |
認証ログ | Ubuntu/Debian |
/var/log/cron |
cronジョブの実行ログ | RHEL/CentOS系 |
/var/log/httpd/access_log |
Apacheアクセスログ | Apache導入済み |
/var/log/httpd/error_log |
Apacheエラーログ | Apache導入済み |
/var/log/maillog |
メールサーバーログ | Postfix/Sendmail導入済み |
/var/log/audit/audit.log |
SELinux監査ログ | SELinux有効時 |
| やりたいこと | コマンド |
|---|---|
| ログをリアルタイムで確認する | tail -f /var/log/messages |
| エラーだけ絞り込む | grep -i error /var/log/messages |
| systemdログをリアルタイム確認 | journalctl -f |
| 特定サービスのログを確認する | journalctl -u サービス名 -f |
| 今回の起動からのログを確認する | journalctl -b |
| 圧縮ログを検索する | zgrep "検索語" ログファイル.gz |
Linuxのログ管理・トラブルシューティングを体系的に学びませんか?
ログファイルの場所と見方を知っておくことは、サーバー障害の原因特定と早期復旧の鍵になります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:Zip形式で圧縮されたファイルから特定の文字列を含む行を抽出する方法|zgrepとzegrepの使い方
- 前のページへ:特定の文字列を含むファイルを検索する(特定のディレクトリを対象)|grep -rの使い方と実務Tips
- この記事の属するカテゴリ:Linuxtips・ディレクトリ・ファイル操作へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます