【具体例あり】NginxのLogを確認・カスタマイズする方法

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年9月)

✔当記事は次のような疑問を持つ人々へ向けて書かれています

「nginx logの役割とは何か?」

「nginx logの設定方法について深く知りたい」

「nginx logの具体的な使用例を探している」

✔当記事を通して以下の内容を示します

  • nginx logの基本的な概念
  • nginx logの設定ならびにその活用法
  • nginx logの現実的な例

当記事は、nginx logの基本から、その設定や活用法まで、現実的な使用例を用いて詳細に説明します。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

nginxとは

こちらでは、「nginx」について基本的な情報と設定ファイルの探し方についてお伝えしていきます。

  • nginxとは
  • 設定ファイルの探し方

nginxとは

nginxは、高いパフォーマンスと安定性を持つオープンソースのウェブサーバーです。

多くの大規模サイトで使用されており、負荷分散やリバースプロキシとしても機能します。

軽量ながら多機能であるため、初心者から上級者まで広く使われています。

設定ファイルの探し方

nginxの設定ファイルは、サーバーの挙動をカスタマイズするための重要な要素です。

その構造は、主ファイルであるnginx.confから始まります。

/etc/nginx/nginx.conf

ただし主ファイルにも記載のとおり、サーバーブロックについては、以下のディレクトリ内で分割され定義されています。

/etc/nginx/conf.d/

デフォルトの設定は、default.confで確認可能です。

このファイルを編集することで、ウェブサーバーの動作を柔軟に制御できます。

$ cat /etc/nginx/conf.d/default.conf
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

nginx logの詳細

こちらでは、「nginx log」の詳細な情報など、理解しやすい見方についてお伝えしていきます。

  • ログファイルの位置と解析法
  • logの構造: 理解しやすい見方

ログファイルの位置と解析法

nginxのデフォルト設定において、ログファイルの保存場所はこちらです。

/var/log/nginx/

ログの解析には、専門のツールを使用することが一般的で、これによりサイトのトラフィック分析やエラーの特定が効率的におこなえます。

例えば、GoAccessやAWStatsなどのツールが有用です。

logの構造: 理解しやすい見方

nginxのログには、アクセスログとエラーログの2種類があります。

  • アクセスログ:訪問者の情報
  • エラーログ:エラー情報

各行がひとつのリクエストを表し、IPアドレスやURL、ステータスコードなどの情報が含まれます。

これを適切に解析することで、サイトの状態を正確に把握できます。

設定変更手順

こちらでは、「nginxの設定変更」に関連する要点とログ出力設定のカスタマイズ方法についてお伝えしていきます。

  • nginxの設定変更要点
  • ログ出力設定: そのカスタマイズ方法

nginxの設定変更

nginxの設定変更は、ngixn.confもしくは、conf.d以下のファイルを編集します。

access_log  /var/log/nginx/host.access.log  main;

設定の誤りがあるとサーバーが停止する場合もあるため、変更前にはバックアップと構文チェックを必ずおこないましょう。

バックアップはCPコマンドで、構文チェックとリロードは以下の方法です。

cp default.conf default.conf.bak #バックアップ例
nginx -t #構文チェック
nginx -s reload #リロード

ログ出力設定: そのカスタマイズ方法

ログ出力設定は、アクセスログやエラーログの出力形式を変更するために用います。

nginx.conf内で設定でき、フォーマットをカスタマイズ。

http {
    ...

    log_format myformat '$remote_addr - $remote_user [$time_local] "$request" '
                         '$status $body_bytes_sent "$http_referer" '
                         '"$http_user_agent" "$http_x_forwarded_for"';

    ...
}

特定の情報だけを記録したり、異なるファイルに分割したりすることが可能です。

このカスタマイズは、分析の精度を向上させる上で非常に有用です。

カスタムフォーマットを適用するには以下のように、サーバブロックを変更します。

server {
    ...

    access_log /var/log/nginx/access.log myformat;

    ...
}

特定の条件でログ記録を制御できます。

server {
    ...

    set $loggable 1;
    if ($request_uri ~* "/dontlogthis") {
        set $loggable 0;
    }

    access_log /var/log/nginx/access.log myformat if=$loggable;

    ...
}

ログの適切な管理

こちらでは、「nginx logの適切な管理」について、自動的なバックアップ方法と保存期間の長期化の重要性についてお伝えしていきます。

  • 自動的なバックアップ方法
  • 保存期間の長期化: なぜ重要か
  • “.gz” ファイルの展開について

自動的なバックアップ方法

ログファイルのバックアップは、データ喪失のリスクを減らす重要なプロセスです。

cronなどのスケジューリングツールを用いて、定期的にバックアップを取る設定をすることが一般的。

これにより、万が一の際も過去のデータを安全に復元することが可能です。

保存期間の長期化: なぜ重要か

ログの保存期間を長くすることで、長期間にわたる分析や過去のデータ比較が可能です。

サイトの成長トレンドや季節的な変動などを正確に把握できるでしょう。

保存期間が長すぎるとストレージの問題が生じることもあるため、適切な期間を設定してください。

“.gz” ファイルの展開について

nginxのログファイルは、保存スペースを節約するために”.gz”形式で圧縮されることがよくあります。

これらのファイルはgunzipコマンドなどを使用して展開しましょう。

gunzip file.gz

ファイルが展開されて解析可能な形になります。

ログの活用法

こちらでは、「nginx logの活用法」について詳しくお伝えしていきます。

  • パフォーマンスチューニング
  • セキュリティトラブルシューティング
  • アクセス解析

パフォーマンスチューニング

nginxログは、サーバーのパフォーマンスを分析し改善するためにも活用できます。

アクセスのピーク時や遅延の原因を特定するために、ログファイルを詳細に調査が可能です。

適切なツールと共に使用することで、サイトのロード時間を短縮するなどのチューニングをおこないます。

セキュリティトラブルシューティング

ログを適切に分析することで、セキュリティ上の問題を早期に発見できます。

不正なアクセスや攻撃の試みなどがログに記録されるため、これらの情報を解析し対策を講じることが可能。

セキュリティの専門ツールと組み合わせることで、より効果的な監視が可能となります。

アクセス解析

アクセスログを解析することで、ユーザーの行動や人気のページ、利用デバイスなどを深く理解することが可能です。

Google Analyticsなどと併用すると、サイトの最適化やマーケティング戦略の策定に役立ちます。

アクセス解析は、サイト運営者にとって重要な情報源となるでしょう。

まとめ

当記事では、nginx logの活用法について学習してきました。

これらの知識を活用することで、ウェブサイトの運営をより効率的で効果的におこなえるでしょう。

Nginxのサーバー内で、ログファイルや設定ファイルなど、リスクのない範囲でいろいろ触って、見てみてください。

タイトルとURLをコピーしました