Windowsで「イベントログ」というと、イベントビューアでシステムやアプリの動作を一括管理できますよね。
Linuxにも同じようにシステムやアプリケーションの動作履歴を残すログがあり、これを総称して「イベントログ」と呼ぶことがあります。
こんな場面で必要になります
- サーバーでエラーが発生したとき、原因を調べたい
- 不正アクセスがないかセキュリティチェックしたい
- システムの動作状況を定期的に確認したい
- アプリケーションの動作不良を調査したい
- サーバー管理者として日常的な運用を行いたい
この記事では、Linuxにおけるイベントログの種類や保存場所、そして基本的な確認方法を初心者にもわかりやすく解説します。
これを読めば、Linuxのログ管理の基本がしっかり身につきますよ!
Linuxのイベントログとは

イベントログの基本概念
Linuxでは、システムで起こるさまざまな出来事(イベント)を自動的にファイルに記録しています。
記録される主な情報
- システムの起動・停止
- ユーザーのログイン・ログアウト履歴
- サービス(デーモン)の開始・停止・エラー
- セキュリティ関連の出来事(認証成功・失敗)
- ハードウェアの状態変化
- アプリケーションからのメッセージ
これらを総称して「イベントログ」「システムログ」と呼びます。
WindowsとLinuxのログの違い
Windows のイベントログ
- イベントビューアで一括管理
- バイナリ形式で保存
- 重要度レベル(情報、警告、エラー)で分類
- GUI で簡単に閲覧・検索可能
Linux のイベントログ
- 複数のテキストファイルに分散保存
- 基本的にプレーンテキスト形式
- コマンドラインツールで確認
- より柔軟で詳細な情報を記録
主なログファイルの種類と場所

ほとんどのLinuxディストリビューションでは/var/log
ディレクトリにログが集まっています。
システム全般のログ
RedHat系(CentOS、RHEL、Fedora)
/var/log/messages # システム全般の一般的なメッセージ
/var/log/secure # 認証関連(SSH、sudo等)
Debian系(Ubuntu、Debian、Linux Mint)
/var/log/syslog # システム全般のログ
/var/log/auth.log # 認証関連(SSH、sudo等)
詳細なログファイル一覧
ログファイル | 内容 | 重要度 |
---|---|---|
/var/log/messages | システム全般の一般的なメッセージ(RedHat系) | ★★★ |
/var/log/syslog | システム全般のログ(Debian系) | ★★★ |
/var/log/auth.log | 認証(SSHログイン、sudo等)Debian系 | ★★★ |
/var/log/secure | 認証(CentOS/RHEL系) | ★★★ |
/var/log/kern.log | カーネル関連のログ | ★★ |
/var/log/dmesg | 起動時のハードウェア初期化ログ | ★★ |
/var/log/boot.log | システム起動時のメッセージ | ★★ |
/var/log/cron | cron(定期実行)の動作ログ | ★★ |
/var/log/mail.log | メールサーバーのログ | ★ |
アプリケーション固有のログ
Webサーバー
/var/log/httpd/ # Apache(RedHat系)
/var/log/apache2/ # Apache(Debian系)
/var/log/nginx/ # Nginx
データベース
/var/log/mysql/ # MySQL
/var/log/postgresql/ # PostgreSQL
その他のサービス
/var/log/vsftpd.log # FTPサーバー
/var/log/samba/ # Sambaファイルサーバー
イベントログを確認する基本コマンド
tail:ログの末尾を確認
基本的な使い方
# ログの最後の10行を表示
tail /var/log/syslog
# 最後の50行を表示
tail -n 50 /var/log/syslog
# リアルタイムでログを監視
tail -f /var/log/syslog
実用例
# Webサーバーのアクセスログをリアルタイム監視
tail -f /var/log/nginx/access.log
# システムログの最新100行を確認
tail -n 100 /var/log/messages
less:大量のログをページ単位で確認
# ページ単位でスクロール表示
less /var/log/auth.log
lessコマンドの操作方法
- スペースキー:次のページ
- b:前のページ
- /:文字列検索
- n:次の検索結果
- q:終了
grep:特定の文字列を検索
基本的な検索
# SSHログイン失敗を検索
grep "Failed password" /var/log/auth.log
# 特定のIPアドレスからのアクセスを検索
grep "192.168.1.100" /var/log/syslog
# エラーメッセージを検索
grep -i "error" /var/log/messages
便利なgrepオプション
- -i:大文字小文字を区別しない
- -n:行番号を表示
- -A 3:マッチした行の後3行も表示
- -B 3:マッチした行の前3行も表示
- -C 3:マッチした行の前後3行を表示
head:ログの先頭を確認
# ログの最初の10行を表示
head /var/log/syslog
# 最初の20行を表示
head -n 20 /var/log/messages
journalctl:systemd環境での統合ログ管理

journalctlの基本
最近のLinux(systemd採用のディストリビューション)では、journalctl
で統合ログ(バイナリログ)を確認できます。
基本的な使い方
# 全てのログを表示
journalctl
# ログの末尾を表示して詳細情報付き
journalctl -xe
# リアルタイムでログを監視
journalctl -f
オプションの説明
- -x:詳細な説明を追加
- -e:ログの末尾にジャンプ
- -f:リアルタイム監視(tail -f と同様)
サービス単位でのログ確認
特定のサービスのログを確認
# SSHサービスのログ
journalctl -u sshd
# Apacheのログ
journalctl -u apache2
# systemdのログ
journalctl -u systemd
時間範囲を指定したログ確認
今日のログのみ
journalctl --since today
過去1時間のログ
journalctl --since "1 hour ago"
特定の期間のログ
journalctl --since "2023-12-01" --until "2023-12-31"
優先度による絞り込み
エラーレベル以上のみ表示
journalctl -p err
優先度レベル
- emerg:緊急(0)
- alert:警告(1)
- crit:重要(2)
- err:エラー(3)
- warning:警告(4)
- notice:通知(5)
- info:情報(6)
- debug:デバッグ(7)
実用的なログ分析例
セキュリティ関連の確認
SSH不正アクセスの調査
# ログイン失敗の確認
grep "Failed password" /var/log/auth.log
# 成功したログインの確認
grep "Accepted password" /var/log/auth.log
# IPアドレス別の失敗回数をカウント
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
sudo使用履歴の確認
grep "sudo" /var/log/auth.log
システム状態の確認
システム起動・停止の履歴
# 起動ログの確認
journalctl -b
# 前回の起動ログ
journalctl -b -1
# 再起動の履歴
grep "reboot" /var/log/syslog
サービスの状態確認
# Webサーバーの起動状況
journalctl -u apache2 | grep "Started\|Stopped"
# エラーのみ抽出
journalctl -u apache2 -p err
ディスク容量関連の確認
ディスク容量警告の確認
grep -i "disk\|space" /var/log/syslog
ファイルシステムエラーの確認
grep -i "filesystem\|fsck" /var/log/messages
ログファイルのローテーション

logrotateの基本
Linuxではlogrotate
というツールで古いログファイルを自動的に管理します。
設定ファイルの場所
/etc/logrotate.conf # メイン設定
/etc/logrotate.d/ # 個別サービスの設定
ローテーションの確認
# 現在のローテーション状況
ls -la /var/log/
ローテーションされたログの確認
圧縮されたログの確認
# 圧縮ログの中身を確認
zcat /var/log/syslog.2.gz | head
# 圧縮ログから検索
zgrep "error" /var/log/syslog.*.gz
ログ監視のベストプラクティス
定期的な確認項目
毎日確認すべきログ
- 認証ログ(不正アクセスの有無)
- システムエラーログ
- ディスク容量関連の警告
週次で確認すべきログ
- サービスの再起動履歴
- パフォーマンス関連の警告
- セキュリティアップデートのログ
自動監視の設定
簡単な監視スクリプト例
#!/bin/bash
# 毎日実行する簡単なログチェック
echo "=== SSH失敗ログイン確認 ==="
grep "Failed password" /var/log/auth.log | tail -10
echo "=== システムエラー確認 ==="
grep -i "error" /var/log/syslog | tail -10
echo "=== ディスク容量警告確認 ==="
grep -i "disk.*full\|no space" /var/log/syslog | tail -5
トラブルシューティング

よくある問題と対処法
Q:ログファイルが見つからない
A:ディストリビューションによってファイル名が異なります
# ログディレクトリの内容を確認
ls -la /var/log/
# systemdログを確認
journalctl --list-boots
Q:ログが大きすぎて確認できない
A:期間や条件を絞り込んで確認してください
# 今日のログのみ
journalctl --since today
# 特定のサービスのみ
journalctl -u サービス名
# エラーレベルのみ
journalctl -p err
Q:ログの時刻がおかしい
A:システムの時刻設定を確認してください
# 現在の時刻設定を確認
timedatectl
# NTPでの時刻同期を有効化
sudo timedatectl set-ntp true
Q:ログにアクセスできない(Permission denied)
A:適切な権限でアクセスしてください
# sudo権限で確認
sudo tail /var/log/secure
# ログファイルの権限を確認
ls -la /var/log/
よくある質問

Q:Windowsのイベントビューアのような GUI ツールはありますか?
A:はい、いくつかあります
- GNOME Logs(gnome-logs):GNOME環境
- KSystemLog:KDE環境
- LogAnalyzer:Web ベースのログ分析ツール
Q:ログを他のサーバーに転送できますか?
A:rsyslogやsyslog-ngを使って中央集約できます
# rsyslogの設定例
# /etc/rsyslog.conf に追加
*.* @@log-server:514
Q:古いログを永続的に保存したい場合は?
A:logrotateの設定を変更するか、別途アーカイブしてください
# アーカイブ例
tar czf logs_$(date +%Y%m).tar.gz /var/log/*.log
まとめ:Linuxログ管理の基本をマスターしよう
この記事のポイント
確認したいこと | おすすめコマンド | 用途 |
---|---|---|
システム全般のログ | tail -f /var/log/syslog | 日常監視 |
認証関連のログ | grep "Failed" /var/log/auth.log | セキュリティチェック |
systemd環境の統合ログ | journalctl -xe | 詳細調査 |
特定サービスのログ | journalctl -u サービス名 | トラブルシューティング |
リアルタイム監視 | tail -f ログファイル | 問題発生時の追跡 |
重要なポイント
- ディストリビューションによってログファイル名が異なる
- systemd環境では journalctl が便利
- 定期的なログ確認でシステムの健康状態を把握
- セキュリティログは特に注意深く監視
- ログローテーションでディスク容量を管理
コメント