首頁 > 軟體

Nginx設定-紀錄檔格式設定方式

2023-03-17 06:07:20

上線了一個小的預約程式,設定通過Nginx進行存取入口,預設的紀錄檔是沒有請求時間的,因此需要設定一下,將每一次的請求的存取響應時間記錄出來,備查與優化使用.

一、預設的紀錄檔格式

預設的紀錄檔格式如下(預設是註解掉的,系統也自動會使用):

    #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;

二、我使用的紀錄檔格式

我僅僅在預設的基礎上加上響應時間的兩個我較關心的引數:request_time與upstream_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;

注意的是:log_format與access_log的註釋都要放開,僅放開log_format也是不生效的.

#設定成格式2後,可以用相應的正規表示式,檢視大於1秒的紀錄檔,分兩步如下:

##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]]"

三、引數

說明

  • $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:建立連線和從上游伺服器接收響應頭的第一個位元組之間的時間

四、測試效果

修改前預設紀錄檔

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; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"
127.0.0.1 - - [03/May/2022:12:02:51 +0800] "GET /byhsyyGateway/byhsyySystem/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, like 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, like 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, like Gecko) Chrome/99.0.4844.51 Safari/537.36" "-" "0.037" "0.037"

可以看到修改後的最後多了兩個關於時間的引數資料,可以用於響應時間快慢分析.

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com