haproxy日志配置 + rsyslog

haproxy在默认情况不会记录日志,除了在haproxy.conf中的global段指定日志的输出外,还需要配置系统日志的配置文件。下面以centos6.4为例,haproxy使用系统自带的rpm报1.4版本

编辑/etc/haproxy/haproxy.conf 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

编辑系统日志配置 

1
2
3
# vim /etc/rsyslog.conf
默认有下面的设置,会读取 /etc/rsyslog.d/*.conf目录下的配置文件
$IncludeConfig /etc/rsyslog.d/*.conf

为haproxy创建一个独立的配置文件

 
1
2
3
4
5
6
# vim  /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local3.*     /var/log/haproxy.log
#如果不加下面的的配置则除了在/var/log/haproxy.log中写入日志外,也会写入message文件
&~

配置rsyslog的主配置文件,开启远程日志 

1
2
3
4
5
# vim /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS=”-c 2 -r -m 0″
#-c 2 使用兼容模式,默认是 -c 5
#-r 开启远程日志
#-m 0 标记时间戳。单位是分钟,为0时,表示禁用该功能

 

重启haproxy和rsyslog服务

 

 
1
2
#/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"

posted @ 2016-10-30 22:26  princessd8251  阅读(965)  评论(0编辑  收藏  举报