haproxy 日志格式
我们都知道日志是非常强大的一个库,里面可以挖出来很多东西,弄明白他,将令你如虎添翼。
haproxy支持4种日志格式,大多数的字段都是相通的,只有极少数的格式是因为某种特殊的功能配置而单独添加的。
第一个:默认格式。这种格式非常基本,已经很少使用了,他的日志中只有:来访者IP:端口;目的IP:端口;前端名称(frontend-name)。
第二个:TCP格式。是一种高级格式。开启条件:前端(frontend)设置开启了“option tcplog”,就会出现这种日志格式。haproxy通常会等待一个连接从开始到结束后,才记录日志。这种日志提供了丰富的信息,如:时间,连接数,队列大小等。这种日志格式非常适合纯tcp的代理。
其中6的格式0/0/5007 Tw/Tc/Tt 时间 #时间都是ms级别的。
Tw 是指在请求队列中等待的总时间(T代表总共 w代表waiting) 如果是-1的话 代表客服端主动断开请求
Tc 是指用来连接后端server tcp建联总时间(T代表总共 c代表connect) 如果是-1的话 代表客服端在tcp建联的时候断开请求
Tt 是指haproxy完成整个请求的总时间(包括接受请求 向后端发起 接收后端的内容 和重试的所有时间) (T代表总共 t也代表总共)
其中7的格式byte_read* 日志记录时 所以经过haproxy 传输的字节数.
其中9的格式0/0/0/0/3 actconn/feconn/beconn/srv_conn/retries
actconn 是指会话记录过程中进程并发连接数(好像跟系统文件描述符相关)
feconn 是指会话记录过程中frontend中的并发连接数(frontend 级别的)
beconn 是指会话记录过程中backend中已经建立握手的并发连接数(backend 级别的)
srv_conn 是指会话记录过程中活跃的并发连接数
retries是指会话记录过程中重试后端server的次数
其中10的格式0/0 srv_queue/backend_queue
srv_queue 处理改请求时 server端的队列正在处理的连接数
backend_queue 处理改请求是 backend队列正在处理的连接数
第三个:HTTP格式。是专门用来做HTTP代理的日志。开启条件:前端(frontend)设置开启了“option httplog”,就会出现这中日志格式。它不仅包括了tcp日志中的字段,还包含一些http请求中所特有的内容字段,如:请求,状态码,header信息,以及cookie信息。这中日志格式非常适合HTTP代理。
Jun 26 20:55:18 日志产生的时间
localhost.localdomain 本地
haproxy[6255]: haproxy pid
112.3.150.26:19538 客户端源地址 :源端口
[1372251318.135/1372251318.267] 请求开始时间/请求结束时间 时间戳的格式
http-in frontend名称
fc_backend/CMN-NJ-S-3O7 backend名称/后端server名称(均根据配置的改变而改变)
0/0/0/111/132 Tq/Tw/Tc/Tr/Tt (时间跟上面一样 ms级别的)
Tq 等待客户端发送完整的http请求的时间 (-1 表示在接收http响应之前断开连接)
Tw 请求在队列中等待的时间 (-1 表示请求到达队列之前 断开连接)
Tc 与后端server建联的总时间 包括重试时间 (-1 表示请求与后端建联过程中 断开连接)
Tr 等待后端server 发送一个完整http响应总时间 不包括实体内容(-1 代表在等待发送响应之前 断开连接)
Tt 从接受请求到关闭连接的总时间
302 HTTP响应代码
436 接收到该请求返回的数据大小(包括HTTP头) 单位是字节
- 响应的cookie
---- 请求终止状态
9670/9670/7878/1496/0 actconn/feconn/beconn/srv_conn/retries
actconn 是指会话记录过程中进程并发连接数(好像跟系统文件描述符相关)
feconn 是指会话记录过程中frontend中的并发连接数(frontend 级别的)
beconn 是指会话记录过程中backend中已经建立握手的并发连接数(backend 级别的)
srv_conn 是指会话记录过程中活跃的并发连接数
retries 是指会话记录过程中重试后端server的次数
0/0 srv_queue/backend_queuebackend_queue 处理改请求是 backend队列正在处理的连接数
{sz.photo.store.qq.com|Mozilla/4.0 (com|http://user.qzone.qq.com/2644932027/info} {' captured_request_headers '}
与配置有关,看下面:
host 40字节 User_Agent 16字节 Referer 40字节
"GET /rurl2=ce4f79c2e7d3420f44fea1b5363ce5420f16ce1672878028ba568cc37e28a77ed9d0f3516 HTTP/1.1"
GET 请求方法。
/rurl2=ce4f79c2e7d3420f44fea1b5363ce5420f16ce1672878028ba568cc37e28a77ed9d0f3516 请求的URI。
HTTP/1.1 请求的协议版本
日志部分讲到这里。