haproxy在默认情况不会记录日志,除了在haproxy.conf中的global段指定日志的输出外,还需要配置系统日志的配置文件。下面以centos6.4为例,haproxy使用系统自带的rpm报1.4版本
编辑/etc/haproxy/haproxy.conf
global
log 127.0.0.1 local3
#local3是设备,对应于 /etc/rsyslog.conf中的配置,默认回收info的日志级别
maxconn 1024
user haproxy
group haproxy
daemon
pidfile /var/run/haproxy.pid
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
retries 2
option redispatch
maxconn 1024
编辑系统日志配置
# vim /etc/rsyslog.conf
默认有下面的设置,会读取 /etc/rsyslog.d/*.conf目录下的配置文件
$IncludeConfig /etc/rsyslog.d/*.conf
为haproxy创建一个独立的配置文件
# vim /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local3.* /var/log/haproxy.log
#如果不加下面的的配置则除了在/var/log/haproxy.log中写入日志外,也会写入message文件
&~
配置rsyslog的主配置文件,开启远程日志
# vim /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS=”-c 2 -r -m 0″
#-c 2 使用兼容模式,默认是 -c 5
#-r 开启远程日志
#-m 0 标记时间戳。单位是分钟,为0时,表示禁用该功能
重启haproxy和rsyslog服务
#/etc/init.d/rsyslog restart
#/etc/init.d/haproxy restart
由于数据分析的需要,我们必须打开Haproxy日志,并记录相关的503错误信息进行汇总统计,
所以有了下文:
在配置前,我们先来了解下日志的level: local0~local7 16~23保留为本地使用
emerg 0 系统不可用
alert 1 必须马上采取行动的事件
crit 2 关键的事件
err 3 错误事件
warning 4 警告事件
notice 5 普通但重要的事件
info 6 有用的信息
debug 7 调试信息
好了 别的就不多说了,下面开始实际配置:
vi haproxy.conf(在default处添加如下信息)
########################################
defaults
log global
option httplog
log 127.0.0.1 local3
########################################
vi /etc/syslog.conf(添加如下内容)
#######################################
local3.* /data/logs/haproxy.log
#######################################
vi /etc/sysconfig/syslog
#######################################
把SYSLOGD_OPTIONS="-m 0"
改成 SYSLOGD_OPTIONS="-r -m 0"
#######################################
相关解释说明:
-r:打开接受外来日志消息的功能,其监控514 UDP端口;
-x:关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
-m:修改syslog的内部mark消息写入间隔时间(0为关闭),例如240为每隔240分钟写入一次"--MARK--"信息;
-h:默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开,所有
接受到的信息都可根据syslog.conf中定义的@主机转发过去
配置完毕后重启syslogd和haproxy 即可.
日志格式大致如下内容有删减:
Oct 31 00:24:53 haproxy-1 haproxy[30091]: 115.239.212.200:62309 [31/Oct/2013:00:24:53.337]\
page.jesse.com lua_pool/lua_web2 0/0/0/11/44 200 4288 - - ---- 230/230/96/22/0 0/0 "GET /gg?a=jesse_d\
etail_left_qztp&k=%7C%CFC%BFim=newImage;im.src='http://a.jesse.com/c.png?subject=56557&subject_pid\
=question%2F20131025%2F29755876.htm&ip=123.125.71.133 HTTP/1.1"
小小菜鸟一枚