一、haproxy日志位置
haproxy日志默认存储在/var/log/haproxy.log文件中。
如果您在安装haproxy时已经更改了日志的位置,可以在haproxy.cfg配置文件中的global节中查看和更改日志文件的路径。
global
log /path/to/haproxy.log
二、haproxy日志文件
haproxy日志文件记录了代理服务器的请求和响应信息,在诊断问题时提供了重要的线索。
haproxy的日志文件默认采用轮询方式分割,每当日志文件大小达到默认阀值或达到设置的最大文件数时,将自动分割,新的日志文件将以递增的数字作为文件名后缀。
您可以在haproxy.cfg配置文件中使用以下配置来更改日志文件的阀值和数量:
global
log /path/to/haproxy.log local0
log /path/to/haproxy.log local1 notice
log /path/to/haproxy.log local2 info
log /path/to/haproxy.log local3 warning
log /path/to/haproxy.log local4 err
log /path/to/haproxy.log local5 crit
log /path/to/haproxy.log local6 alert
log /path/to/haproxy.log local7 emerg
log-separate-errors
log-append /path/to/haproxy-errors.log
log-tag my-haproxy
三、haproxy日志详解
haproxy日志文件包含了很多有用的信息,包括源IP、请求方法、响应码和响应时间等。
下面是haproxy日志文件中常见的字段的含义和用途:
- Date:请求时间
- Time:请求时间
- Frontend:前端监听器
- Backend:后端服务
- Server:后端服务器
- Tw:请求等待时间
- Tc:连接用时
- Tt:服务用时
- Bytes in:请求大小
- Bytes out:响应大小
- Termination state:会话状态
- Actconn:并发连接数
- Feconn:前端连接数
- Beconn:后端连接数
- Srv_conn:服务器连接数
- Retries:重试次数
- Srv_queue:服务器队列长度
- Backend_queue:后端队列长度
- Http_request:HTTP请求
- Status_code:响应状态码
- Captured_request_headers/Captured_response_headers:请求/响应头
四、haproxy日志中
haproxy日志文件中的字段可以帮助您轻松地分析代理服务器的行为和性能,从而诊断问题和优化代理服务器。
以Frontend为例,可以通过该字段统计请求的数量和并发连接数:
frontend my-frontend
mode http
bind 0.0.0.0:80
option httplog
stats enable
stats uri /haproxy?stats
stats refresh 15s
stats show-node
stats auth user:password
log-format "%ci:%cp [%t] %ft %b/%s %Tq/%Tw/%Tc/%Tr/%Tt %ST %B %CC %CS %tsc %ac/%fc/%bc/%sc/%rc %sq/%bq %hr/%hs {%sslv/%sslc/%[ssl_fc_sni]/%[ssl_fc_serial]/%[ssl_fc_cipher]/%[ssl_fc_bits]/%[ssl_fc_curve]/%[ssl_fc_session_id]}} %{+Q}r"
在这个配置中,我们使用了log-format指令来自定义日志格式,%ft表示frontend,%ci表示客户端IP,%cp表示客户端端口,%t表示时间,%b表示响应大小,%s表示状态码,%Tq表示请求等待时间,%Tw表示连接用时,%Tc表示服务器连接用时,%Tr表示重定向用时,%Tt表示总用时,%ST表示会话状态,%CC表示客户端开销,%CS表示服务器开销,%tsc表示SSL连接状态,%ac表示并发连接数,%fc表示前端连接数,%bc表示后端连接数,%sc表示服务器连接数,%rc表示重试次数,%sq表示服务器队列长度,%bq表示后端队列长度,%hr表示请求头,%hs表示响应头,%sslv表示SSL版本,%sslc表示SSL协议,%[ssl_fc_sni]表示SSL证书
五、haproxy日志配置
如果您需要更改haproxy日志的格式和位置,可以在haproxy.cfg配置文件中的global节中进行配置。
以下是一个haproxy日志配置文件的示例:
global
log /path/to/haproxy.log local0
log /path/to/haproxy.log local1 notice
log /path/to/haproxy.log local2 info
log /path/to/haproxy.log local3 warning
log /path/to/haproxy.log local4 err
log /path/to/haproxy.log local5 crit
log /path/to/haproxy.log local6 alert
log /path/to/haproxy.log local7 emerg
log-separate-errors
log-append /path/to/haproxy-errors.log
log-tag my-haproxy
六、haproxy日志格式
haproxy提供了灵活的日志格式配置,可以通过使用log-format指令来自定义日志格式。
以下是haproxy日志格式的示例:
log-format "%ci:%cp [%t] %ft %b/%s %Tq/%Tw/%Tc/%Tr/%Tt %ST %B %CC %CS %tsc %ac/%fc/%bc/%sc/%rc %sq/%bq %hr/%hs %{+Q}r"
七、haproxy日志关闭
在某些极端情况下,您可能希望关闭haproxy的日志记录。
以下是在haproxy.cfg配置文件中禁用日志记录的示例:
global
quiet
log /dev/null local0
log /dev/null local1 notice
log /dev/null local2 info
log /dev/null local3 warning
log /dev/null local4 err
log /dev/null local5 crit
log /dev/null local6 alert
log /dev/null local7 emerg
八、haproxy日志怎么查看
您可以使用tail命令实时查看haproxy日志文件的内容:
tail -f /var/log/haproxy.log
如果需要查看haproxy日志文件的内容,可以使用cat或less命令:
cat /var/log/haproxy.log