ホームページ  >  記事  >  運用・保守  >  Nginxのログ形式を設定する方法

Nginxのログ形式を設定する方法

WBOY
WBOY転載
2023-05-15 22:43:122389ブラウズ

小さな予約プログラムが起動され、アクセス ポータルは Nginx を通じて設定されています。デフォルトのログにはリクエスト時間が含まれていないため、将来の参照と最適化された使用のために各リクエストのアクセス応答時間を記録するように設定する必要があります。 .

1. デフォルトのログ形式

デフォルトのログ形式は次のとおりです (デフォルトはコメントアウトされており、システムが自動的に使用します):

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

    #access_log  logs/access.log  main;

2。私が使用するログ形式

デフォルトに基づいて、より懸念される応答時間の 2 つのパラメータを追加しただけです: request_time と上流_response_time

次の設定を開いて変更します (私は使用しました)形式 2 以降、時間が前に表示され、見やすくなります):

時間データ パラメータを含むログ形式 1

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

    access_log  logs/access.log  main;

時間パラメータの表示順序を調整しました形式 2:

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

    access_log  logs/access.log  main;

Note Yes: log_format と access_log コメントの両方を解放する必要があります。log_format を解放するだけでは有効になりません。

#形式 2 に設定した後、対応する正規表現を使用して 1 秒を超えるログを表示できます。 2 つの手順は次のとおりです:

##1.高亮时间数据的正则表达式
tail -f access.log |grep "\[[0-9]\.[0-9][0-9][0-9] [0-9]\.[0-9][0-9][0-9]\]"

##2.大于1秒的日志的正则表达式,即将第一个数字改成[1-9]即可
tail -f access.log |grep "\[[1-9]\.[0-9][0-9][0-9] [0-9]\.[0-9][0-9][0-9]\]"

Nginxのログ形式を設定する方法

##3. パラメータ

Description

  • $remote_addr : クライアント アドレス

  • $remote_user: クライアント ユーザー名

  • $time_local:アクセス時間とタイムゾーン

  • $request: リクエストされた URI と HTTP プロトコル

  • $status: HTTP リクエストのステータス

  • $body_bytes_sent: クライアントに送信されたファイル コンテンツのサイズ

  • $http_referer : URLジャンプ元

  • $http_user_agent: ユーザー端末ブラウザ等の情報

  • $ http_host: リクエスト アドレス、つまりブラウザに入力したアドレス (IP またはドメイン名)

  • $request_time: 処理にかかる合計時間ユーザーデータ受信時間を含むリクエスト

  • ##$upstream_response_time

    : 接続を確立してから上流サーバーから応答本文の最後のバイトを受信するまでの時間

  • $upstream_connect_time

    : アップストリーム サーバーへの接続の確立に費やした時間

  • $upstream_header_time

    :接続の確立と接続の確立に費やした時間 上流サーバーが応答ヘッダーの最初のバイトを受信するまでの時間

  • 4. テスト効果

デフォルト ログの前変更

127.0.0.1 - - [03/May/2022:12:02:51 0800] "GET /byhsyyfront/byPages/ HTTP/1.1" 304 0 "-" "Mozilla /5.0 (Windows NT 10.0; Win64; /verifyCode/getVerifyCode HTTP/1.1" 200 2553 "http://localhost:8881/byhsyyfront/byPages/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ( KHTML、Gecko など) Chrome/99.0.4844.51 Safari/537.36"


修正ログ

127.0.0.1 - - [03/May/ 2022:12:00:47 0800 ] "GET /byhsyyfront/byPages/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/99.0 .4844.51 Safari/537.36" "- " "0.025" "0.025"

127.0.0.1 - - [03/May/2022:12:00:47 0800] "GET /byhsyyGateway/byhsyySystem/verifyCode/getVerifyCode HTTP/1.1 " 200 2178 "http:// localhost:8881/byhsyyfront/byPages/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/99.0.4844.51 Safari/537.36" "- " "0.037" "0.037"


変更後は、応答時間の分析に使用できる、時間に関するパラメーター データがさらに 2 つあることがわかります。

以上がNginxのログ形式を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。