nginx日誌可用變量梳理

                          nginx日誌可用變量梳理

   近期需要統計一下公司相關域名下的某些文件的下載速度,初步計劃打算聯繫專業頁面監測廠家,購買頁面監測服務,對相關頁面下載速度進行監控,這個需要花費成本,部署週期也比較長。後來扒拉一下nginx日誌方面的全局變量,發現nginx本身就能做到對域名下的文件下載響應時間、頁面大小、後端響應時間等進行記錄,我們只要把相關變量配置到日誌打印內容即可。


1.nginx日誌配置實例:

"log_format  time  '$time_local ,,$remote_addr,, $status ,,$body_bytes_sent,, $bytes_sent,, $request_length,, $request_time,, $upstream_addr ,,$upstream_response_time ,,$remote

_user ,, $request,, $http_accept_language ,,$http_user_agent ,, $http_host  ,,$http_referer ,,$connection ,,$connection_requests,, $time_iso8601,, $msec,, $pipe,, $uri,, $request_filename,,

$scheme';"


2.打印日誌實例內容展示:

"

20/Mar/2014:17:36:21 ,, +0900 ,, 118.000.72.00 ,, 304 ,, 0 ,, 204 ,, 609  ,,0.000  ,,192.168.18.72:9080 ,,0.000 ,,- ,, GET /ja/xxx.js HTTP/1.1,, zh-CN,zh;q=0.8,en;q=0.6 ,,Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36 ,, tzjs.ptmind.com  ,,- ,,8614960 ,,1,, 2014-03-20T17:36:21+09:00,, 1395304581.680 ,, . ,, /ja/xxx.js  ,,/usr/local//nginx/html/ja/xxx.js  ,,http"

3.nginx日誌可用變量內容詳解

日誌變量            解釋             實例日誌內容

$time_local   通用日誌格式下的本地時間;(服務器時間)==>20/Mar/2014:17:36:21 +0900

$remote_addr  客戶端(用戶)IP地址。==>118.000.72.00

$status      請求狀態(狀態碼,200表示成功,404表示頁面不存在,301表示永久重定向等;==>304

$body_bytes_sent  發送給客戶端的字節數,不包括響應頭的大小; 該變量與Apache模塊mod_log_config裏的“%B”參數兼容;==>0

$bytes_sent      發送給客戶端的總字節數;==> 204

$request_length  請求的長度(包括請求行,請求頭和請求正文);==>609

$request_time    請求處理時間,單位爲秒,精度毫秒; 從讀入客戶端的第一個字節開始,直到把最後一個字符發送給客戶端後進行日誌寫入爲止;==>0.001

$upstream_addr   集羣輪詢地址;==> 192.168.18.72:9080

$upstream_response_time   是指從Nginx向後端(php-cgi)建立連接開始到接受完數據然後關閉連接爲止的時間;==>0.001

$remote_user     用來記錄客戶端用戶名稱;==> 空值 -

$request         請求方式(GET或者POST等);==>GET /ja/xxx.js HTTP/1.1

$http_accept_language    用戶瀏覽器語言;==>zh-CN,zh;q=0.8,en;q=0.6

$http_user_agent用戶瀏覽器其他信息,瀏覽器版本、瀏覽器類型等;==>Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36

$http_host      請求的url地址(目標url地址)的host;==>tzjs.ptmind.com

$http_referer   來源頁面,即從哪個頁面轉到本頁,專業名稱叫做“referer”;==>直接訪問值爲空

$connection     接的序列號;==>8614960

$connection_requests   當前通過一個連接獲得的請求數量;==>1

$time_iso8601ISO8601   標準格式下的本地時間;==>2014-03-20T17:36:21+09:00

$msec           日誌寫入時間。單位爲秒,精度是毫秒;==>1395304581.680

$pipe           如果請求是通過HTTP流水線(pipelined)發送,pipe值爲“p”,否則爲“.”;==>.

$uri            請求中的當前URI(不帶請求參數,參數位於$args),不同於瀏覽器傳遞的$request_uri的值,它可以通過內部重定向,或者使用index指令進行修改。不包括協議和主機名,例如/foo/bar.html==> /ja/xxx.js

$request_filename  當前連接請求的文件路徑,由root或alias指令與URI請求生成。==>/usr/local//nginx/html/ja/xxx.js

$server_protocol |$scheme     請求使用的協議,通常是HTTP/1.0或HTTP/1.1。==>http

$geoip_country_code      用戶地理位置代碼(國家代碼)安裝國家地理代碼庫可用;


   通過上面的參數介紹可以看出nginx可以輸出的內容還是比較豐富,具體怎麼使用?用在哪裏?仁者見仁智者見智!

原文鏈接:http://michaelkang.blog.51cto.com/1553154/1380853

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章