haproxy mysql 日志_HAProxy 日志输出及配置

本文介绍了HAProxy的日志输出配置,包括全局设置、默认参数、监听、前端和后端配置。强调了在4层和7层模式下的工作原理,并提供了具体的配置示例,如设置日志级别、最大连接数、负载均衡算法等。同时,讨论了在Centos系统中如何配置rsyslog以将HAProxy日志输出到指定目录。

正所谓,没有软件敢说没有bug,人无完人,software is  not perfect software。是软件就可能存在bug,那么如果出现bug,我们就要分析对我们业务的影响及可能如何避免bug的再现。

HAProxy也不例外,也可能在特殊场景下出现bug,因此我们就有必要记录下必要的日志信息。今天来聊下HAProxy的日志输出及对应参数配置。

HAProxy支持两种主要的代理模式:"tcp"也即4层(大多用于邮件服务器、内部协议通信服务器等),和7层(HTTP)。在4层模式 下,HAproxy仅在客户端和服务器之间转发双向流量。7层模式下,HAProxy会分析协议,并且能通过允许、拒绝、交换、增加、修改或者删除请求 (request)或者回应(response)里指定内容来控制协议,这种操作要基于特定规则。

说到四层模式及七层模式,我们就要回忆下,在RabbitMQ集群搭建过程中,有没有使用到四层模式呢?答案是有的,使用TCP协议  进行双向的通信代理 使用的就是四层协议。

HAProxy配置文件可以分为五部分,在上次RabbitMQ集群搭建也简单聊了下,

1 global:   全局配置参数段,主要用来控制Haproxy启动前的进程及系统相关设置2 defaults:  配置一些默认参数,如果frontend,backend,listen等段未设置则使用defaults段设置3 listen: 监听配置4 frontend:  用来匹配接收客户所请求的域名,uri等,并针对不同的匹配,做不同的请求处理5 backend:  定义后端服务器集群,以及对后端服务器的一些权重、队列、连接数等选项的设置

HAProxy的安装我们不再介绍,在安装完毕以后,进行的日志输出配置:

根据实际需求,更改配置文件,我的配置如下global#全局设置

log127.0.0.1local3#local3是设备,对应于 /etc/rsyslog.conf中的配置,默认回收info的日志级别

#log loghost local0 info

maxconn4096#最大连接数

chroot/usr/local/haproxy

uid99#所属运行的用户uid

gid99#所属运行的用户组

daemon             #以后台形式运行haproxy

nbproc2#启动2个haproxy实例

pidfile/usr/local/haproxy/haproxy.pid    #将所有进程写入pid文件

#debug

#quiet

defaults                #默认设置

#loggloballog 127.0.0.1local3 #日志文件的输出定向

mode http     #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK

option httplog     #日志类别,采用httplog

option dontlognull

option forwardfor     #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip

option httpclose     #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只能模拟这种模式的实现

retries3#3次连接失败就认为服务器不可用,主要通过后面的check检查

option redispatch     #当serverid对应的服务器挂掉后,强制定向到其他健康服务器

maxconn2000#最大连接数

stats uri/stats     #haproxy 监控页面的访问地址

浏览器中输入haproxy监控地址:http://10.10.100.39/stats查看状态

contimeout5000#连接超时时间

clitimeout50000#客户端连接超时时间

srvtimeout50000#服务器端连接超时时间

stats auth admin:admin     #设置监控页面的用户和密码:Frank

stats hide-version     #隐藏统计页面的HAproxy版本信息

frontend http-in#前台

bind*:80mode http

option httplog

logglobalacl web1 hdr(host)-i www.9888.cn 9888.cn

#acl后面是规则名称,-i是要访问的域名,如果访问www.9888.cn 这个域名就分发到下面的webserver1 的作用域。

use_backend webserver1ifweb1

backend webserver1      #后台

mode http

balance roundrobin     #负载均衡算法

option httpchk/index.html      #健康检查

server web0110.10.100.41:80 check cookie 1 inter 2000 fall 3 weight 30server web0210.10.100.18:80 check cookie 2 inter 2000 fall 3 weight 30#cookie 1表示serverid为1,check inter1500是检测心跳频率

#rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重.

对于Centos,日志级别分别为:

Centos6.x中变成了:/etc/init.d/rsyslog

在配置前,我们先来了解下日志的level: local0~local716~23保留为本地使用

emerg0系统不可用

alert1必须马上采取行动的事件

crit2关键的事件

err3错误事件

warning4警告事件

notice5普通但重要的事件

info6有用的信息

debug7      调试信息

2.编辑系统日志文件配置 vim /etc/rsyslog.conf

在文件末尾追加:local0.*                      /var/log/haproxy/haproxy.log

3、创建HAProxy记录日志文件 并授权

mkdir /var/log/haproxy && chmod a+w /var/log/haproxy

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

vim /etc/sysconfig/rsyslog

SYSLOGD_OPTIONS=”-c 2 -r -m 0″

5.配置完成后,配置完成后重启haproxy和rsyslog服务

/etc/init.d/rsyslog restart

/etc/init.d/haproxy restart

请注意:采用的Linux 系统版本是Centos 6.5

至此,可以正常的输出HAProxy运行日志,在出现故障或查看运行情况时,可查看该日志文件;另外我们可以根据需要灵活的调整日志输出级别及输出目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值