HAProxy状态页配置
stats enable #基于默认的参数启用stats page
stats hide-version # 隐藏版本
stats refresh # 设定自动刷新时间间隔
stats uri #自定义stats page uri,默认值:/haproxy?stats
stats realm #账户认证时的提示信息
stats auth : #认证时的账号和密码,可使用多次,默认:no authentication
stats admin { if | unless } #启用stats page中的管理功能
示例:
listen stats
bind 8877 #绑定地址端口
stats enable #状态页启用
stats hide-version #隐藏版本
stats uri /haproxy-status #指定URL
stats realm HAPorxy\ Stats\ Page #指定认证信息
stats auth haadmin:123456 #指定认证账号密码,可以写多个
stats auth admin:123456
stats refresh 30s #刷新间隔
stats admin if TRUE #只要登录就能获得管理权限
状态页说明
pid = 3698 (process #2, nbproc = 2, nbthread = 2) #pid为当前pid号,process为当前进程号,nbproc和nbthread为一共多少进程和每个进程多少个线程
uptime = 0d 0h00m08s #启动了多长时间
system limits: memmax = unlimited; ulimit-n = 131124 #系统资源限制:内存/最大打开文件数/
maxsock = 131124; maxconn = 65536; maxpipes = 0 #最大socket连接数/单进程最大连接数/最大管道数maxpipes
current conns = 1; current pipes = 0/0; conn rate = 1/sec #当前连接数/当前管道数/当前连接速率
Running tasks: 1/9; idle = 100 % #运行的任务/当前空闲率
active UP:#在线服务器 backup UP:#标记为backup的服务器
active UP, going down: #监测未通过正在进入down过程 backup UP, going down:#备份服务器正在进入down过程
active DOWN, going up: #down的服务器正在进入up过程 backup DOWN, going up:#备份服务器正在进入up过程
active or backup DOWN: #在线的服务器或者是backup的服务器已经转换成了down状态 not checked:#标记为不监测的服务器
active or backup DOWN for maintenance (MAINT) #active或者backup服务器认为下线的
active or backup SOFT STOPPED for maintenance #active或者backup被认为软下线(人为将weight改成0)
session rate(每秒的连接会话信息):
cur:每秒的当前会话数量
max:每秒新的最大会话数量
limit:每秒新的会话限制量
sessions(会话信息):
cur:当前会话量
max:最大会话量
limit:限制会话量
Total:总共会话量
LBTot:选中一台服务器所用的总时间
Last:和服务器的持续连接时间
Bytes(流量统计):
In:网络的字节输入总量
Out:网络的字节输出总量
Denied(拒绝统计信息):
Req:拒绝请求量
Resp:拒绝回复量
Errors(错误统计信息):
Req:错误请求量
conn:错误链接量
Resp:错误响应量
Warnings(警告统计信息):
Retr:重新尝试次数
Redis:再次发送次数
Server(real server信息):
Status:后端机的状态,包括UP和DOWN
LastChk:持续检查后端服务器的时间
Wght:权重
Act:活动链接数量
Bck:备份的服务器数量
Chk:心跳检测时间
Dwn:后端服务器连接后都是DOWN的数量
Dwntme:总的downtime时间
Thrtle:server状态
修改报文
报文修改支持正则
在请求报文尾部添加指定报文:
reqadd [{if | unless} ]
在响应报文尾部添加指定报文:
rspadd [{if | unless} ]
示例:
在响应报文中添加test:a111
listen test
bind 192.168.1.10:80
mode http
rspadd test:\ a111
server testweb1 192.168.1.12:80
server testweb2 192.168.1.13:80
从请求报文中删除匹配正则表达式的首部
reqdel [{if | unless} ]
reqidel [{if | unless} ] 不分大小写
从响应报文中删除匹配正则表达式的首部
rspdel [{if | unless} ]
rspidel [{if | unless} ]
示例:
从报文中删除test
listen test
bind 192.168.1.10:80
mode http
rspidel test:.*
server testweb1 192.168.1.12:80
server testweb2 192.168.1.13:80
日志配置和自定义
在default配置项定义:
log 127.0.0.1 local{1-7} info #基于syslog记录日志到指定设备,级别有(err、warning、info、debug)
配置rsyslog:
$ModLoad imudp
$UDPServerRun 514
local2.* /var/log/haproxy.log
配置HAProxy:
listen web_port
bind 127.0.0.1:80
mode http
log global
option tcplog
server test 127.0.0.1:8080 check inter 3000 fall 2 rise 5
配置完需要重启haproxy和syslog服务
自定义记录
capture cookie len #捕获请求和响应报文中的 cookie并记录日志
capture request header len #捕获请求报文中指定的首部内容和长度并记录日志
capture response header len #捕获响应报文中指定的内容和长度首部并记录日志
示例:
记录host和浏览器类型
listen test
bind 192.168.1.10:80
mode http
capture request header Host len 256
capture request header User-Agent len 512
server testweb1 192.168.1.12:80
server testweb2 192.168.1.13:80