在haproxy配置文件相应模块添加以下内容(即,将日志输出到系统日志local0)
log 127.0.0.1 local0 info
例:
global
log 127.0.0.1 local0 info
maxconn 4096
daemon
chroot /var/lib/haproxy
pidfile /var/run/haproxy3306.pid
#debug
#quiet
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
log 127.0.0.1 local0
retries 3
option redispatch
maxconn 4096
#contimeout 5000
#clitimeout 50000
#srvtimeout 50000
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 10m
timeout server 10m
timeout http-keep-alive 10s
timeout check 10s
1、查询是否安装默认的日志管理系统
rpm -q rsyslog
2、vim /etc/rsyslog.d/haproxy_log.conf写入以下内容:
$ModLoad imudp
$UDPServerRun 514
local0.* /mnt/app/haproxy/logs/haproxy.log
说明:$ModLoad imudp:imudp是模块名,支持UDP协议
$UDPServerRun 514:允许514端口接收使用UDP和TCP协议转发过来的日志,而rsyslog在默认情况下,正是在514端口监听UDP。
3、修改/etc/sysconfig/rsyslog文件 ,修改为如下内容:
vim /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS=”-c 2 -r -m 0”
#vim /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-c 2 -r -m 0”
说明:
-c 指定运行兼容模式。
-r 接收远程日志
-x 在接收客户端消息时,禁用DNS查找。需和-r参数配合使用。
-m 标记时间戳。单位是分钟,为0时,表示禁用该功能。
4、重启rsyslog服务
#centos6:
/etc/init.d/rsyslog restart
#centos7:
systemctl restart rsyslog.service
5、日志切割脚本
vim haproxy_log.sh 添加以下内容
#!/bin/bash
##haproxy日志收集##
##定义目录##
LOGS_PATH=/mnt/app/haproxy/logs
##日志切割##
#mkdir ${LOGS_PATH}/log.${YESTERDAY}
mv ${LOGS_PATH}/haproxy.log ${LOGS_PATH}/haproxy.log.${YESTERDAY}
##重新生成新的日志##
/etc/init.d/rsyslog restart
##推送至数据中心##
rsync -avzt --progress --password-file=/etc/rsyncd/rsyncd.pass ${LOGS_PATH}/haproxy.log.${YESTERDAY} admin@10.172.170.89::daodao_ha_01/haproxy/
##本地日志只保留7天###
find /mnt/app/haproxy/logs/ -mtime +7 -name "*.log" -exec rm -fr {} \;
6、添加计划任务
crontab -e 输入以下内容:
##haproxy日志切割##
0 0 * * * /etc/rsyncd/haproxy_log.sh