Nginx を使用して HTTP リクエストのログを記録および分析する方法
はじめに:
日常の Web 開発では、Web サイトへのアクセスを監視し、問題のトラブルシューティングを行い、最適化するために、HTTP リクエストをログに記録して分析する必要がよくあります。パフォーマンス。 Nginx は強力な HTTP サーバーおよびリバース プロキシ サーバーとして豊富なログ機能を提供し、そのパフォーマンスは他のサーバーよりも優れています。この記事では、HTTP リクエストのログ記録と分析のために Nginx を設定および使用する方法を紹介します。
1. Nginx ログ形式の構成
より詳細な情報を記録するために、Nginx ログ形式をカスタマイズできます。 Nginx 設定ファイルで、「http」コンテキストを見つけて、次の内容を追加します。
http { log_format my_log_format '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" "$http_user_agent" ' '"$gzip_ratio"'; access_log /var/log/nginx/access.log my_log_format; }
ここでは、リモート アドレス、リモート ユーザー、アクセス時間、リクエストの内容、ステータスを含む、「my_log_format」という名前のログ形式を定義します。コード、送信バイト数、ソース URL、ユーザー エージェント、Gzip 比率、その他の情報。この形式は、Nginx のアクセス ログ ファイルに適用されます。
2. ログ セグメンテーション用に Nginx を構成する
Web サイトへのアクセス数が増えると、ログ ファイルが非常に大きくなる傾向があります。ログの管理と分析を容易にするために、ログを分割するように Nginx を構成できます。次の内容を Nginx 構成ファイルに追加します。
http { access_log /var/log/nginx/access.log my_log_format; error_log /var/log/nginx/error.log; logrotate daily; rotate 7; size 10M; missingok; notifempty; compress; delaycompress; }
ここでは、ログを毎日分割し、過去 7 日間のログ ファイルを保持するように Nginx を構成します。各ファイルの最大サイズは 10MB で、上限に達すると圧縮され、新しいログ ファイルが生成されます。さらに、ファイルが存在しない場合でもログは続行され、空のファイルはログ分割をトリガーしません。
3. ログ分析に ELK Stack を使用する
ELK Stack は、Elasticsearch、Logstash、Kibana の 3 つのツールで構成されるオープンソースのログ分析ソリューションです。 ELK スタックを使用して、Nginx ログを分析および視覚化できます。設定手順は次のとおりです:
1. Elasticsearch のインストール
まず、ログ ストレージとインデックス作成用のデータベースとして Elasticsearch をインストールし、設定する必要があります。特定のインストール手順については、Elasticsearch の公式ドキュメントを参照してください: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
2. Logstash
# をインストールします。 ##2 番目に、Logstash をデータ収集および処理ツールとしてインストールして構成します。特定のインストール手順については、Logstash の公式ドキュメントを参照してください: https://www.elastic.co/guide/en/logstash/current/index.html3. Logstash 構成ファイルを作成します新しい設定ファイル (nginx.conf など) を 1 つ作成し、次の内容を追加します。
input { file { path => "/var/log/nginx/access.log" start_position => "beginning" } } filter { grok { match => { "message" => "%{IPORHOST:clientip} %{HTTPDUSER:ident} %{USER:auth} [%{HTTPDATE:timestamp}] "%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response} %{NUMBER:bytes} "%{URI:referrer}" "%{DATA:useragent}" "%{DATA:gzipratio}"" } } } output { elasticsearch { hosts => "localhost" index => "nginx-logs-%{+YYYY.MM.dd}" } }
$ bin/logstash -f nginx.conf
HTTP リクエストをログに記録して分析するように Nginx を構成することで、Web サイトへのアクセスを監視し、問題をトラブルシューティングし、パフォーマンスを最適化できます。同時にELK Stackと組み合わせることで、ログの一元保管・分析・可視化が実現でき、運用保守効率やWebサイトのパフォーマンス分析の精度が向上します。この記事が皆様のお役に立てれば幸いです。
以上がNginx を使用して HTTP リクエストのログ記録と分析を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。