1. 程式人生 > >HAProxy 之 日誌記錄管理

HAProxy 之 日誌記錄管理

日誌配置 haprxoy

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端的httplog配置

在默認選項裏有如下的配置,以下配置表示如果是除了本機發的,就不攜帶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傳遞用戶請求的協議和端口(frontendbackend),方便查看用戶訪問的端口號。以下兩個方法二選一

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 之 日誌記錄管理