haproxy提供了5种日志格式,有default log、tcplog、HTTPlog、CLFHTTPlog、custom log

default log

haproxy的默认日志格式
Nov 26 05:56:17 localhost haproxy[3521]: Connect from 11.2.2.66:51659 to 11.2.3.25:80 (web/HTTP)

format 日志字段
process_name ‘[’ pid ‘]:’ haproxy[3521]:
‘Connect from’ Connect from
source_ip ‘:’ source_port 11.2.2.66:51659
‘to’ to
‘(’ frontend_name ‘/’ mode ‘)’ (www/HTTP)

tcplog

tcplog是纯tcp代理推荐使用的格式,它对提供故障诊断信息具有相当的帮助。由于存在计数器和字节数,它总是在会话结束后发出。如果使用option logasap,则可以更早发出。大多数适用于长会话当中。在前端指定option dontlognull也可以不为客户端和服务器之间没有交换数据的会话发送日志。如果在前端指定option donlog-normal,成功的连接将不会被记录。
日志格式:
Nov 26 06:51:26 localhost haproxy[6308]: 11.2.3.25:60042 [26/Nov/2020:06:51:24.395] mysql sqlserver/sql1 1/0/1710 188 -- 0/0/0/0/0 0/0

format 日志字段
process_name ‘[’ pid ‘]:’ haproxy[3521]:
source_ip ‘:’ source_port 11.2.3.25:60042
‘[’ accept_date ‘]’ [26/Nov/2020:06:51:24.395]
frontend_name mysql
backend_name ‘/’ server_name sqlserver/sql1
Tw ‘/’ Tc ‘/’ Tt* 1/0/1710
bytes_read* 188
termination_state
actconn ‘/’ feconn ‘/’ beconn ‘/’ srv_conn ‘/’ retries* 0/0/0/0/0
srv_queue ‘/’ backend_queue 0/0
  • Tw:在各种队列中消耗的时长,默认为毫秒
  • Tc:等待连接的总时长,从客户端到和服务器之间的最终连接,包括重试
  • Tt:它包含了从接受到最后一次处理完的时长,这期间的时长来自服务器可能处理的时长。如果使用option logasap,则可以更早发出
  • bytes_read*: 从服务器发送到客户端的日志总字节数,如果指定option logasap,则此值将以+号作为前缀,表示最后一个值可能更大
  • termination_state:表示会话是以哪种状态断开了
  • actconn:记录会话时进程上的并发连接数
  • feconn:“feconn”是记录会话时前端的并发连接总数。评估维持高负载所需的资源数量,以及检测何时达到了frontend的“maxconn”是很有用的。最常见的情况是,当此值大幅上升时,是因为后端服务器出现拥塞,但有时也可能是由拒绝服务攻击引起的。
  • beconn:是记录会话时后端的并发连接总数
  • srv_conn:“srv_conn”是记录会话时服务器上仍然活动的并发连接总数。它永远不能超过服务器配置的“maxconn”参数。如果这个值经常接近或等于服务器的“maxconn”,则意味着流量管理涉及很多,意味着服务器的maxconn值太低,或者没有足够的服务器以最佳响应时间来处理负载。当服务器的“srv_conn”只有一个较高时,通常意味着该服务器存在一些问题,导致处理连接的时间比其他服务器更长。
  • retries*:重试次数
  • srv_queque:“srv_queue”是服务器队列中在此请求之前处理的请求总数。当请求未通过服务器队列时,它为零。通过将队列中花费的时间除以队列中请求的数量,可以估计出服务器的响应时间。值得注意的是,如果会话经历被分派并通过两个服务器队列,它们的位置将被累积。除非发生重新分派,否则请求不应同时通过服务器队列和后端队列。
  • backend_queque:后端服务器队列

HTTP log format

HTTP格式的日志最适用于http代理的模式。同tcp一样,提供了非常有用的帮助

Nov 26 07:54:47 localhost haproxy[7202]: 11.2.3.25:38168 [26/Nov/2020:07:54:47.724] web websrv/srv2 0/0/0/1/1 200 256 - - ---- 1/1/0/1/0 0/0 "GET / HTTP/1.1"

format 日志字段
process_name ‘[’ pid ‘]:’ haproxy[7202]:
client_ip ‘:’ client_port 11.2.3.25:38168
‘[’ accept_date ‘]’ [26/Nov/2020:07:54:47.724]
frontend_name web
backend_name ‘/’ server_name websrv/srv2
Tq ‘/’ Tw ‘/’ Tc ‘/’ Tr ‘/’ Tt* 0/0/0/1/1
status_code 200
bytes_read* 256
captured_request_cookie -
captured_response_cookie -
actconn ‘/’ feconn ‘/’ beconn ‘/’ srv_conn ‘/’ retries* 1/1/0/1/0
srv_queue ‘/’ backend_queue 0/0
‘"’ http_request ‘"’ “GET /index.html HTTP/1.1”
  • Tq:是客户端与服务器之间发送一次完整的http请求消耗的时长,单位是毫秒。 如果出现大量的请求,一般是网络问题。 连接失败是-1 web websrvs/<NOSRV> 178/-1/-1/-1/178 "
  • Tw:在队列中等待的时长
  • Tc:客户端连接到最终服务器的时长,包括重试次数
  • Tr:等待服务器发送完整的http响应所花费的时间,不算数据。它通常会和服务器处理请求的时间相匹配,"GET"请求的大量时间通常表明服务器超载
  • Tt:从连接到最后一次关闭消耗的时间。它涵盖了所有可能的处理
  • status_code:响应码
  • bytes_read* :发送日志到客户端的总字节数,包含了http头部。

http模式下的log还可以添加一些选项。

capture cookie <name> len <length>:捕获一个在请求和响应中的cookie并记录到日志中,只能用在frontendlisten

示例:

frontend webbind :80default_backend websrvsoption httploglog globalcapture cookie RS len 32
backend websrvsbalance roundrobinhash-type consistentcookie RS indirect insert nocacheoption forwardfor except 127.0.0.1 header X-RealIP-Forserver web 172.17.0.2:80    cookie web checkserver web1 172.17.0.3:80   check

日志表现:

Nov 26 22:39:58 localhost haproxy[17723]: 192.168.199.111:53144 [26/Nov/2020:22:39:58.077] web websrvs/web 165/0/0/1/166 304 152 RS=web - --VN 1/1/0/1/0 0/0 "GET / HTTP/1.1"

capture request header <name> len <length>:捕获指定请求头信息最后一次的出现

示例:

frotend下capture request header  HOST len 15

日志显示

Nov 26 23:19:57 localhost haproxy[18352]: 192.168.199.111:55897 [26/Nov/2020:23:19:57.213] web websrvs/web1 456/0/0/1/457 200 282 RS=web - ---- 2/2/0/0/0 0/0 {192.168.199.155} "GET / HTTP/1.1"

capture response header <name> len <length>:捕获指定响应头信息最后一次的出现
示例:

frontend下
capture response header Server len 40

日志显示:

Nov 26 23:23:50 localhost haproxy[18410]: 192.168.199.111:56117 [26/Nov/2020:23:23:50.430] web websrvs/web 312/0/0/1/313 200 283 RS=web - ---- 2/2/0/1/0 0/0 {192.168.199.155} {Apache/2.4.6 (CentOS) PHP/5.4.16} "GET / HTTP/1.1"

custom log

haproxy可以根据自己的需要定义日志

各个参数可以看文档

示例:

capture cookie RS len 32capture request header  Cookie len 15capture response header Server len 40capture request header User-Agent len 30log-format %ci:%cp\ %si:%sp\ %B\ %U\ %ST\ %r\ %b\ %f\ %bi\ %hrl\ %hsl\

%hrl:capture捕获的request报文信息,会以CLF模式显示出来。
%hsl:capture捕获的response报文信息,会以CLF模式显示出来。

日志显示:

Nov 27 00:13:38 localhost haproxy[19180]: 192.168.199.111:59180 172.17.0.2:80 283 560 200 GET / HTTP/1.1 websrvs web 172.17.0.1 RS=web Mozilla/5.0 (Windows NT 10.0;  Apache/2.4.6 (CentOS) PHP/5.4.16\

haproxy log日志简单记录相关推荐

  1. HAproxy开启日志记录

    1.说明 HAproxy在默认情况不会记录日志, 不仅要在haproxy.conf中配置日志输出, 还需要修改系统日志的配置文件. 2.修改haproxy.conf 在haproxy.conf文件中增 ...

  2. 配置Haproxy增加日志记录功能

    2019独角兽企业重金招聘Python工程师标准>>> CentOS 7上yum安装的Haproxy,默认没有记录日志.需要做一下配置才能记录日志. 1.创建日志文件/var/log ...

  3. HAproxy增加日志记录功能和自定义日志输出内容、格式

    http://blog.51cto.com/eric1/1854574 一.增加haproxy日志记录功能   1.1 由于数据分析的需要,我们必须打开haproxy日志,记录相关信息. 在配置前,我 ...

  4. 基于C/C++的log日志记录等级系统

    目录 log日志系统初始化 log日志输出 禁止log日志输出 log日志关闭 log日志测试 log日志系统初始化 int logger_init(int loglevel) {time_t now ...

  5. 自动化关键数据记录(log日志,allure报告,异常截图)

    前言 本文为在霍格沃兹测试开发学社的学习经历分享,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 日志 官方网址:https://docs.python.org/3.12/howto/loggin ...

  6. linux如何截断日志,linux 如何截取一段时间内log日志

    截取一段时间内的log日志可以使用sed命令对log文件进行抽取操作: 1,sed查看某时间段到现在的系统日志: sed -n '/May 20 17/,$p' /var/log/messages | ...

  7. git log 查看提交记录,参数:

    git log 查看提交记录,参数: -n (n是一个正整数),查看最近n次的提交信息 $ git log -2 查看最近2次的提交历史记录 -- fileName fileName为任意文件名,查看 ...

  8. 如何对系统中设置的修改记录增加log日志

    前段时间有个用户打电话给我,苦兮兮的说,他们的自定义的报表版本的内容不知道给谁删除的干干静静,然后咬牙切齿的说,一定要设个blog,抓住这个乱改的家伙. 我给他的答复是,对不起,自定义报表的行列字段修 ...

  9. ios开发循环网络请求_谈谈 iOS 网络层设计(SSJNetWork封装缓冲,log日志,自动取消网络请求)...

    2.delegate效率高,delegate只是保存了一个对象指针3.在多个通信事件的时候,delegate显得直观也易维护. delegate缺点:1.因方法的声明和实现分离开来,代码的连贯性不是很 ...

最新文章

  1. Git tag 打标签
  2. python埋点自动化_iOS自动化埋点的实现
  3. 网络——连接到server
  4. iOS中如何监测来电
  5. SQL Server时间函数
  6. php cookie 二级域名,php如何设置cookie对整个域名有效及二级域名
  7. 从设计者的角度解读ThreadLocal
  8. 基于JAVA+Swing+MYSQL的教务管理系统
  9. 今天写了个商品采购入得存储过程,使用游标实现的,实现了多个商品库存的增加...
  10. 星云STS 常用配置
  11. 就地升级Lync Server 到Skype for Business Server
  12. 简单线性回归的应用及画图(一)
  13. 【Photoshop】滤镜详解
  14. 最齐全的宋体字体素材,速来收藏
  15. 腾讯程序员平均月薪7.48万,分分钟变身“柠檬精”
  16. 有向图的邻接矩阵的平方运算的含义
  17. 【转】中国只有俩导演,一个叫贾樟柯,一个叫姜文
  18. 打印从1到最大的n位数------2022/08/05
  19. STM32CubeMX全部版本下载地址
  20. proc*c/c++简介

热门文章

  1. 一步一步实现中后台管理平台模板-08-登录页和用户信息保存
  2. 一、Oracle数据库
  3. MySQL简介、M有SQL的存储引擎、表、字段和数据
  4. 查找OpenJDK安装路径
  5. 默认文献工具_极大提高效率:深度学习论文写作工具杂谈
  6. Matlab R2012b 重复激活,License 失效问题解决
  7. 计算机实际应用的例子,作业二:单工通信;半双工通信; 双工通信;有哪些实际应用的例子...
  8. git branch -a查看不了所有远程分支
  9. 杭州都有哪些靠谱点的互联网公司?
  10. 10种世界上最美的花