haproxy log日志简单记录
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请求消耗的时长,单位是毫秒。 如果出现大量的请求,一般是网络问题。 连接失败是-1web 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并记录到日志中,只能用在frontend
和listen
中
示例:
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日志简单记录相关推荐
- HAproxy开启日志记录
1.说明 HAproxy在默认情况不会记录日志, 不仅要在haproxy.conf中配置日志输出, 还需要修改系统日志的配置文件. 2.修改haproxy.conf 在haproxy.conf文件中增 ...
- 配置Haproxy增加日志记录功能
2019独角兽企业重金招聘Python工程师标准>>> CentOS 7上yum安装的Haproxy,默认没有记录日志.需要做一下配置才能记录日志. 1.创建日志文件/var/log ...
- HAproxy增加日志记录功能和自定义日志输出内容、格式
http://blog.51cto.com/eric1/1854574 一.增加haproxy日志记录功能 1.1 由于数据分析的需要,我们必须打开haproxy日志,记录相关信息. 在配置前,我 ...
- 基于C/C++的log日志记录等级系统
目录 log日志系统初始化 log日志输出 禁止log日志输出 log日志关闭 log日志测试 log日志系统初始化 int logger_init(int loglevel) {time_t now ...
- 自动化关键数据记录(log日志,allure报告,异常截图)
前言 本文为在霍格沃兹测试开发学社的学习经历分享,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 日志 官方网址:https://docs.python.org/3.12/howto/loggin ...
- linux如何截断日志,linux 如何截取一段时间内log日志
截取一段时间内的log日志可以使用sed命令对log文件进行抽取操作: 1,sed查看某时间段到现在的系统日志: sed -n '/May 20 17/,$p' /var/log/messages | ...
- git log 查看提交记录,参数:
git log 查看提交记录,参数: -n (n是一个正整数),查看最近n次的提交信息 $ git log -2 查看最近2次的提交历史记录 -- fileName fileName为任意文件名,查看 ...
- 如何对系统中设置的修改记录增加log日志
前段时间有个用户打电话给我,苦兮兮的说,他们的自定义的报表版本的内容不知道给谁删除的干干静静,然后咬牙切齿的说,一定要设个blog,抓住这个乱改的家伙. 我给他的答复是,对不起,自定义报表的行列字段修 ...
- ios开发循环网络请求_谈谈 iOS 网络层设计(SSJNetWork封装缓冲,log日志,自动取消网络请求)...
2.delegate效率高,delegate只是保存了一个对象指针3.在多个通信事件的时候,delegate显得直观也易维护. delegate缺点:1.因方法的声明和实现分离开来,代码的连贯性不是很 ...
最新文章
- Git tag 打标签
- python埋点自动化_iOS自动化埋点的实现
- 网络——连接到server
- iOS中如何监测来电
- SQL Server时间函数
- php cookie 二级域名,php如何设置cookie对整个域名有效及二级域名
- 从设计者的角度解读ThreadLocal
- 基于JAVA+Swing+MYSQL的教务管理系统
- 今天写了个商品采购入得存储过程,使用游标实现的,实现了多个商品库存的增加...
- 星云STS 常用配置
- 就地升级Lync Server 到Skype for Business Server
- 简单线性回归的应用及画图(一)
- 【Photoshop】滤镜详解
- 最齐全的宋体字体素材,速来收藏
- 腾讯程序员平均月薪7.48万,分分钟变身“柠檬精”
- 有向图的邻接矩阵的平方运算的含义
- 【转】中国只有俩导演,一个叫贾樟柯,一个叫姜文
- 打印从1到最大的n位数------2022/08/05
- STM32CubeMX全部版本下载地址
- proc*c/c++简介