Linuxの主要なログファイルを確認する方法|/var/log/配下の一覧とjournalctlの使い方

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ディレクトリ・ファイル操作 > Linuxの主要なログファイルを確認する方法|/var/log/配下の一覧とjournalctlの使い方
「サーバーで何かエラーが出たけど、どのログを見ればいいかわからない」
「/var/log/の下にファイルがたくさんあって、どれが何のログかわからない」

Linuxサーバーのトラブル調査は、適切なログファイルを見つけることが第一歩です。
ログの場所を知らないままコマンドを打ち続けても、原因にはたどり着けません。

この記事では、/var/log/配下の主要なログファイルの役割と確認方法、
syslog/rsyslogの仕組み、journalctlによるsystemdログの確認まで、
実際のサーバー運用で使う手順を解説します。
【この記事でわかること】
・/var/log/配下の主要ログファイルとその内容
・tail -fでリアルタイムにログを確認する方法
・journalctlコマンドでsystemdログを確認する方法
・ログを素早く絞り込む実務的なコマンドパターン

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

Linuxのログ管理の仕組み

Linuxでは「どこにどのログが書かれるか」はシステムによって決まっています。
まずその仕組みを理解することで、目的のログに素早くたどり着けます。

1. syslogとjournaldの二重構造(CentOS 7以降)

仕組み デーモン ログの場所 特徴
従来のsyslog rsyslog /var/log/*.log(テキストファイル) 人間が読めるテキスト形式
systemdのログ journald /run/log/journal/(バイナリ) journalctlコマンドで参照する
CentOS 7 / RHEL 7以降はどちらも並行して動いています。
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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。