Nginx を使用して HTTP リクエストのログ記録と分析を行う方法

WBOY
リリース: 2023-08-02 08:32:13
オリジナル
3019 人が閲覧しました

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.html

3. 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}"
    }
}
ログイン後にコピー

ここでは、ログ ファイルへのパス、ログ形式、Elasticsearch のアドレスを指定し、日付 middle が接尾辞として付けられたインデックスにログが記録されます。

4. Logstash の起動

Logstash を起動して構成ファイルを読み込みます:

$ bin/logstash -f nginx.conf
ログイン後にコピー
5. Kibana のインストール

最後に、ログ視覚化のために Kibana をインストールして構成します。道具。特定のインストール手順については、Kibana の公式ドキュメントを参照してください: https://www.elastic.co/guide/en/kibana/current/index.html

設定が完了したら、Kibana の Web インターフェイスを開き、検索・フィルター機能により、Nginxのアクセスログをリアルタイムに表示・分析できます。

結論:

HTTP リクエストをログに記録して分析するように Nginx を構成することで、Web サイトへのアクセスを監視し、問題をトラブルシューティングし、パフォーマンスを最適化できます。同時にELK Stackと組み合わせることで、ログの一元保管・分析・可視化が実現でき、運用保守効率やWebサイトのパフォーマンス分析の精度が向上します。この記事が皆様のお役に立てれば幸いです。

以上がNginx を使用して HTTP リクエストのログ記録と分析を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!