1. 日志配置参数

配置HAproxy记录日志到指定日志文件中。

主要相关参数如下 :

  • log global : 实例中使用该选项时,会使用global中的配置相同。 section : defaults、frontend、listen、backend。

  • log <address> [len <length>] [format <format>] [sample <ranges>:<sample_size>] <facility> [<level> [<minlevel>]] : 设置日志格式。 section : defaults、frontend、listen、backend。

    • address : 支持IPV4、IPv6、socket,不一定是本地IP

    • len : 日志的最大长度 , 如果实际日志消息大于这个值 , 将被截取后发送。默认是1024 , 该值的区别80 –65535 , 不在这个区间将无法启动。

    • format :日志格式规范 , 可选项rfc3164、rfc5424 , 默认是rfc3164。

    • facility : 日志的级别为local0~local7。

    • level : 传输的最大日志等级

    • minlevel : 设置最低日志等级

  • no log : 不记录 log。 section : defaults、frontend、listen、backend。

  • log-send-hostname : 在syslog日志开头字段中设置主机名。section : global

2. 日志配置流程

HAProxy日志配置,分为两个部分: 一个是HAProxy中的配置,二是通过配置日志服务, 类似于rsyslog服务。

  • HAProxy配置如下

    #在HAproxy中配置远程的udp的rsyslog
    root@ubuntu:~#cat  /etc/haproxy/haproxy.cfg 
    global
            log 192.168.194.136:514 local3 info
    listen web_port
            log global
    ​
    #haproxy2.4 版本以后支持tcp的rsyslog协议
    #在Haproxy中配置远程的tcp的rsyslog
    root@ubuntu:~#cat  /etc/haproxy/haproxy.cfg 
    global
            log tcp@192.168.194.136:514 local3 info
    listen web_port
            log global
  • rsyslog配置

    [root@centos7 ~]# cat /etc/rsyslog.conf 
    $ModLoad imudp
    $UDPServerRun 514
    local3.*                                 /var/log/haproxy.log
    ​
    或者配置tcp协议
    [root@centos7 ~]# cat /etc/rsyslog.conf 
    $ModLoad imtcp
    $InputTCPServerRun 514
    local3.*                                                /var/log/haproxy.log

  • 日志验证

    在rsyslog的日志服务器中查看日志文件/var/log/haproxy.log

    [root@centos7 ~]# tailf /var/log/haproxy.log 
    Jun  4 11:26:07 192.168.194.134 haproxy[1596]: 192.168.194.1:6453 [04/Jun/2022:11:26:07.678] web_port web_port/web1 0/0/0/63/63 200 296 - - ---- 2/2/0/0/0 0/0 "GET / HTTP/1.1"
    Jun  4 11:26:35 192.168.194.134 haproxy[1596]: 192.168.194.1:6453 [04/Jun/2022:11:26:35.865] web_port web_port/web1 0/0/0/1/1 304 158 - - ---- 2/2/0/0/0 0/0 "GET / HTTP/1.1"


熊熊