目錄
- 一、默認(rèn)的日志格式
- 二、我使用的日志格式
- 三、參數(shù)
- 四、測(cè)試效果
- 總結(jié)
上線了一個(gè)小的預(yù)約程序,配置通過(guò)Nginx進(jìn)行訪問(wèn)入口,默認(rèn)的日志是沒(méi)有請(qǐng)求時(shí)間的,因此需要配置一下,將每一次的請(qǐng)求的訪問(wèn)響應(yīng)時(shí)間記錄出來(lái),備查與優(yōu)化使用.
一、默認(rèn)的日志格式
默認(rèn)的日志格式如下(默認(rèn)是注解掉的,系統(tǒng)也自動(dòng)會(huì)使用):
#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;
二、我使用的日志格式
我僅僅在默認(rèn)的基礎(chǔ)上加上響應(yīng)時(shí)間的兩個(gè)我較關(guān)心的參數(shù):request_time與upstream_response_time
將以下的配置開(kāi)放并修改(我后面用了格式2,時(shí)間在前面,容易查看):
帶時(shí)間數(shù)據(jù)參數(shù)的日志格式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;
調(diào)整了下時(shí)間參數(shù)的顯示順序的格式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的注釋都要放開(kāi),僅放開(kāi)log_format也是不生效的.
#設(shè)置成格式2后,可以用相應(yīng)的正則表達(dá)式,查看大于1秒的日志,分兩步如下:
##1.高亮?xí)r間數(shù)據(jù)的正則表達(dá)式 tail -f access.log |grep "\[[0-9]\.[0-9][0-9][0-9] [0-9]\.[0-9][0-9][0-9]\]" ##2.大于1秒的日志的正則表達(dá)式,即將第一個(gè)數(shù)字改成[1-9]即可 tail -f access.log |grep "\[[1-9]\.[0-9][0-9][0-9] [0-9]\.[0-9][0-9][0-9]\]"
三、參數(shù)
說(shuō)明
$remote_addr
:客戶端地址$remote_user
:客戶端用戶名稱$time_local
:訪問(wèn)時(shí)間和時(shí)區(qū)$request
:請(qǐng)求的URI和HTTP協(xié)議$status
:HTTP請(qǐng)求狀態(tài)$body_bytes_sent
:發(fā)送給客戶端文件內(nèi)容大小$http_referer
:url跳轉(zhuǎn)來(lái)源$http_user_agent
:用戶終端瀏覽器等信息$http_host
:請(qǐng)求地址,即瀏覽器中你輸入的地址(IP或域名)$request_time
:處理請(qǐng)求的總時(shí)間,包含了用戶數(shù)據(jù)接收時(shí)間$upstream_response_time
:建立連接和從上游服務(wù)器接收響應(yīng)主體的最后一個(gè)字節(jié)之間的時(shí)間$upstream_connect_time
:花費(fèi)在與上游服務(wù)器建立連接上的時(shí)間$upstream_header_time
:建立連接和從上游服務(wù)器接收響應(yīng)頭的第一個(gè)字節(jié)之間的時(shí)間
四、測(cè)試效果
修改前默認(rèn)日志
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"
可以看到修改后的最后多了兩個(gè)關(guān)于時(shí)間的參數(shù)數(shù)據(jù),可以用于響應(yīng)時(shí)間快慢分析.
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持。