haproxy日志打印

在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

发表评论

电子邮件地址不会被公开。