HAProxy 之 日誌記錄管理
1 概述
記錄日誌為排錯和分析問題啟動關鍵作用,本文將介紹haproxy相關的日誌管理和配置
2 日誌格式
日誌系統在global配置段裏配置,建議配置獨立的log文件,格式如下
log <address> [len<length>] <facility> [<level> [<minlevel>]]
關閉日誌功能
no log
註意:默認發往本機的日誌服務器,設備是local的日誌裏記錄;
如果需要配置到遠程的log服務器,則遠程log服務器需要配置,假設facility為local2,則log服務器配置如下
配置log的配置文件,/etc/rsyslog.conf
(1) local2.* /var/log/local2.log
(2) 打開兩個模塊
$ModLoad imudp
$UDPServerRun 514
3 日誌管理
3.1 capture配置
在frontend配置段裏寫入,將特定報頭信息記錄在日誌中,有請求和響應報文的區別。
捕獲請求和響應報文中的cookie並記錄日誌
格式:capture cookie <name> len <length>
捕獲請求報文中指定的首部並記錄日誌
格式: capturerequest header <name> len <length>
示例:
capture request header X-Forwarded-For len 15
捕獲響應報文中指定的首部並記錄日誌
格式:capture response header <name>len<length>
示例:
capture response headerContent-length len 9 capture response header Location len 15
3.2 forwardfor配置
默認RS端看到的是代理服務器的ip,而不是真實的客戶端ip,需要設置HA的header以及更改RS端的http的log配置
在默認選項裏有如下的配置,以下配置表示如果是除了本機發的,就不攜帶ip,因為默認forwardfor選項有expect127.0.0.0/8
格式如下
option forwardfor [ except <network> ] [ header <name> ] [ if-none ]
在由haproxy發往後端主機的請求報文中添加“X-Forwarded-For”首部,其值為前端客戶端的地址;用於向後端主發送真實的客戶端IP
[ except <network> ]:請求報請來自此處指定的網絡時不予添加此首部,如haproxy自身所在網絡
[ header <name> ]:使用自定義的首部名稱,而非默認的“X-Forwarded-For”
[ if-none ]如果沒有首部才添加首部,如果有使用默認值
例子:
HA上配置,其中sunny-x-client為自定義的名稱,RS日誌格式上需要對應上即可
option forwardfor except 127.0.0.0/8 header sunny-x-client
RS上配置,更改日誌格式,默認的值是X-Forwarded-For,這個名稱通過更改header配置來更改,如這裏更改為sunny-x-client
LogFormat "%h %l %u %t\"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\" \"%{sunny-x-client}i\"" combined CustomLog logs/access_log combined
3.3 http-request配置
向後端log傳遞用戶請求的協議和端口(frontend或backend),方便查看用戶訪問的端口號。以下兩個方法二選一
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwared-Proto https if {ssl_fc}
set-header設置表示如果存在就覆蓋原信息,X-Forwarded-Port是格式的自定義的名字,這裏是根據源端口來設置,如源端口是443,就添加為443,當HA收到請求的時候,就會把HA訪問後臺RS用的端口號轉發到後臺的服務器
add-header不管原來是否有什麽格式,都添加上去,X-Forwared-Proto是格式的名字,是log裏定義需要調用的名字,log加上去的內容為https
RS定義log
LogFormat "%h %l %u%t \"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\" \"%{X-Forwared-Proto} i\"" combined
本文出自 “陽光運維” 博客,請務必保留此出處http://ghbsunny.blog.51cto.com/7759574/1979003
HAProxy 之 日誌記錄管理