格式: log <address> <facility> [<level> [<minlevel>]] 例如: log 127.0.0.1:514 local0 notice # only send important events log 127.0.0.1:514 local0 notice notice # same but limit output level
1将haproxy的日志保存在本地的/var/log/haproxy.log
1.编辑 /etc/haproxy/haproxy.conf
log 127.0.0.1:514 local2
2.编辑rsyslog的配置文件 /etc/rsyslog.conf
# Provides UDP syslog reception //选择本地监听的端口和协议,2选1即可 $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception //tcp的514 $ModLoad imtcp $InputTCPServerRun 514
添加一行:
local2.* /var/log/haproxy.log
3. 重启rsyslog服务和HAProxy服务验证
2 如果是将HAProxy的日志保存于网络上的其他主机
答: log 127.0.0.1:514 local0 ... 将IP地址改为日志地址即可。
2.将Client的Source-IP带给REALSERVER,以便REALSERVER统计
由于HAProxy是7层反向代理,REALSERVER看到的请求都是HAProxy为源发起的,因此为了让REALSERVER能统计出真是的IP地址,需要HAProxy在转发到REALSERVER得HTTP报文中插入X-Forwarded-For字段,并携带CIP。REALSERVER能通过读取HTTP报文当中的X-Forwarded-For字段来获取CIP
配置:
HAProxy: /etc/haproxy/haproxy.conf
defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 #该语句即是插入X-Forwarded-For字段 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m .... ......
HTTP: /etc/httpd/conf/httpd.conf
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
验证效果:
本文出自 “Lu2Yu” 博客,请务必保留此出处http://lu2yu.blog.51cto.com/10009517/1625204
原文:http://lu2yu.blog.51cto.com/10009517/1625204