首頁  >  文章  >  運維  >  Nginx日誌格式如何設定

Nginx日誌格式如何設定

WBOY
WBOY轉載
2023-05-15 22:43:122389瀏覽

上線了一個小的預約程序,配置通過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]\]"

Nginx日誌格式如何設定

三、參數

#說明

  • ##$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 080001 - [GE /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, Chrome. 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.513" " "0.025" "0.025"
127.0.0.1 - - [03/May/2022:12:00:47 0800] "GET /byhsyyGateway/byhsyySystem/verifyCode/getVerifyCode HTTP/1.1"/byhsyySystem/verifyCode/getVerifyCode HTTP/1.1" 20 "http localhost:8881/byhsyyfront/byPages/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "/99.0.4844.51 Safari/537.306""


##可以看到修改後的最後多了兩個關於時間的參數數據,可以用於回應時間快慢分析.

以上是Nginx日誌格式如何設定的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除