haproxy 日誌格式
我們都知道日誌是非常強大的一個庫,裏面可以挖出來很多東西,弄明白他,將令你如虎添翼。
haproxy支持4種日誌格式,大多數的字段都是相通的,只有極少數的格式是因爲某種特殊的功能配置而單獨添加的。
第一個:默認格式。這種格式非常基本,已經很少使用了,他的日誌中只有:來訪者IP:端口;目的IP:端口;前端名稱(frontend-name)。
第二個:TCP格式。是一種高級格式。開啓條件:前端(frontend)設置開啓了“option tcplog”,就會出現這種日誌格式。haproxy通常會等待一個連接從開始到結束後,才記錄日誌。這種日誌提供了豐富的信息,如:時間,連接數,隊列大小等。這種日誌格式非常適合純tcp的代理。
其中6的格式0/0/5007 Tw/Tc/Tt 時間 #時間都是ms級別的。
Tw 是指在請求隊列中等待的總時間(T代表總共 w代表waiting) 如果是-1的話 代表客服端主動斷開請求
Tc 是指用來連接後端server tcp建聯總時間(T代表總共 c代表connect) 如果是-1的話 代表客服端在tcp建聯的時候斷開請求
Tt 是指haproxy完成整個請求的總時間(包括接受請求 向後端發起 接收後端的內容 和重試的所有時間) (T代表總共 t也代表總共)
其中7的格式byte_read* 日誌記錄時 所以經過haproxy 傳輸的字節數.
其中9的格式0/0/0/0/3 actconn/feconn/beconn/srv_conn/retries
actconn 是指會話記錄過程中進程併發連接數(好像跟系統文件描述符相關)
feconn 是指會話記錄過程中frontend中的併發連接數(frontend 級別的)
beconn 是指會話記錄過程中backend中已經建立握手的併發連接數(backend 級別的)
srv_conn 是指會話記錄過程中活躍的併發連接數
retries是指會話記錄過程中重試後端server的次數
其中10的格式0/0 srv_queue/backend_queue
srv_queue 處理改請求時 server端的隊列正在處理的連接數
backend_queue 處理改請求是 backend隊列正在處理的連接數
第三個:HTTP格式。是專門用來做HTTP代理的日誌。開啓條件:前端(frontend)設置開啓了“option httplog”,就會出現這中日誌格式。它不僅包括了tcp日誌中的字段,還包含一些http請求中所特有的內容字段,如:請求,狀態碼,header信息,以及cookie信息。這中日誌格式非常適合HTTP代理。
Jun 26 20:55:18 日誌產生的時間
localhost.localdomain 本地
haproxy[6255]: haproxy pid
112.3.150.26:19538 客戶端源地址 :源端口
[1372251318.135/1372251318.267] 請求開始時間/請求結束時間 時間戳的格式
http-in frontend名稱
fc_backend/CMN-NJ-S-3O7 backend名稱/後端server名稱(均根據配置的改變而改變)
0/0/0/111/132 Tq/Tw/Tc/Tr/Tt (時間跟上面一樣 ms級別的)
Tq 等待客戶端發送完整的http請求的時間 (-1 表示在接收http響應之前斷開連接)
Tw 請求在隊列中等待的時間 (-1 表示請求到達隊列之前 斷開連接)
Tc 與後端server建聯的總時間 包括重試時間 (-1 表示請求與後端建聯過程中 斷開連接)
Tr 等待後端server 發送一個完整http響應總時間 不包括實體內容(-1 代表在等待發送響應之前 斷開連接)
Tt 從接受請求到關閉連接的總時間
302 HTTP響應代碼
436 接收到該請求返回的數據大小(包括HTTP頭) 單位是字節
- 響應的cookie
---- 請求終止狀態
9670/9670/7878/1496/0 actconn/feconn/beconn/srv_conn/retries
actconn 是指會話記錄過程中進程併發連接數(好像跟系統文件描述符相關)
feconn 是指會話記錄過程中frontend中的併發連接數(frontend 級別的)
beconn 是指會話記錄過程中backend中已經建立握手的併發連接數(backend 級別的)
srv_conn 是指會話記錄過程中活躍的併發連接數
retries 是指會話記錄過程中重試後端server的次數
0/0 srv_queue/backend_queuesrv_queue 處理該請求時 server端的隊列正在處理的連接數
backend_queue 處理改請求是 backend隊列正在處理的連接數
{sz.photo.store.qq.com|Mozilla/4.0 (com|http://user.qzone.qq.com/2644932027/info} {' captured_request_headers '}
與配置有關,看下面:
host 40字節 User_Agent 16字節 Referer 40字節
"GET /rurl2=ce4f79c2e7d3420f44fea1b5363ce5420f16ce1672878028ba568cc37e28a77ed9d0f3516 HTTP/1.1"
GET 請求方法。
/rurl2=ce4f79c2e7d3420f44fea1b5363ce5420f16ce1672878028ba568cc37e28a77ed9d0f3516 請求的URI。
HTTP/1.1 請求的協議版本
日誌部分講到這裏。