Linuxサーバーを運用していると、突然のエラーやアクセス異常に直面することは避けられません。そんなときに頼りになるのが、システムの「ログファイル」です。本記事では、エラーログやアクセスログの調査方法を、実践的なコマンドや具体例を交えて解説します。ログを素早く、正確に読み解ける力をつけて、トラブル対応の初動を強化しましょう。

ログファイルの基本:どこに何が記録されているか

Linuxでは多くのログが/var/log/に保存されています。代表的なログファイルは以下のとおりです。

  • /var/log/messages:カーネルやシステムの全般的なログ
  • /var/log/syslog(Ubuntu系):サービスやデーモンの一般ログ
  • /var/log/auth.log:認証関連(ログイン・sudoなど)
  • /var/log/httpd/access_log または /var/log/nginx/access.log:Webアクセスログ
  • /var/log/httpd/error_log または /var/log/nginx/error.log:Webエラーログ
# ログファイル一覧の確認
ls -lh /var/log/

効率的なログの読み方:基本コマンドとテクニック

1. 新しいログから追いかけるには tail -f

# エラーログをリアルタイムに監視
tail -f /var/log/nginx/error.log

サーバーにエラーが発生したときの即時調査に便利です。


2. 特定の文字列を探すには grep

# 500エラーのみを抽出
grep " 500 " /var/log/nginx/access.log

複数条件を使う場合は egrepgrep -E を活用しましょう。

# 404と500を両方抽出
grep -E "404|500" /var/log/nginx/access.log

3. 期間を絞るには awksed

# 2025年5月15日のログのみ表示(日付フォーマットに応じて調整)
awk '/15/May/2025/ {print}' /var/log/nginx/access.log

日付による絞り込みはアクセス解析に役立ちます。


4. 多すぎる出力は lesshead でコントロール

# 最初の100行だけ見る
head -n 100 /var/log/messages

# ページ送りで閲覧
less /var/log/auth.log

アクセスログの読み解き方:構造と見るべきポイント

ApacheやNginxのアクセスログは、一般的に下記のような形式になっています。

127.0.0.1 - - [15/May/2025:12:34:56 +0900] "GET /index.html HTTP/1.1" 200 1024

見るべきポイント:

  • IPアドレス:不審なアクセスの特定
  • 日時:ピーク時間帯の把握
  • リクエストURL:どのページが見られているか
  • ステータスコード:404や500などの異常を検知

エラーログの読み解き方:パターンと対処法

エラーログには、Webサーバーやアプリケーションの問題が記録されています。

# nginxの典型的なエラー例
2025/05/15 12:35:02 [error] 1234#0: *5678 open() "/var/www/html/favicon.ico" failed (2: No such file or directory)

よくあるエラー例と原因:

エラー内容原因対策
Permission deniedパーミッションの設定ミスchmodchown で確認
File not foundファイルやディレクトリの欠損パスの確認、デプロイ漏れのチェック
Connection refusedサービスが起動していないsystemctl status で状態確認

まとめ:ログ調査でトラブル対応のスピードを上げよう

ログの構造を把握し、適切なコマンドで絞り込むことで、原因の特定が格段にスピードアップします。定期的なログの確認や、監視ツールと組み合わせることで、トラブルの予兆を掴むことも可能です。Linuxサーバーにおけるログ調査のスキルを、ぜひ日々の運用に役立ててください。