關於haproxy的一些事兒

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

- 響應的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_queue
srv_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 請求的協議版本

日誌部分講到這裏。

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