zoukankan      html  css  js  c++  java
  • HAProxy基础配置-配置haproxy的日志

                HAProxy基础配置-配置haproxy的日志

                                       作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

      生产环境中我们很少使用haproxy服务器来记录日志,我们知道日志记录那必须得落地,一旦haproxy记录日志这意味着该节点会进行大量的磁盘I/O操作,这无疑会降低效率。如果不记录日志会减少Haproxy的压力,无形中提示了HAProxy的性能。

      大家都知道HAProxy只是负载均衡器,它一般只是公司的访问入口,真正提供服务的是后端的服务器,因此日志记录应该在后端的web服务器来记录哟,而且HAProxy对日志的支持功能并不是很友好。

    一.配置rsyslog支持haproxy日志

    1>.查看rsyslog服务的默认的配置文件

    [root@node102.yinzhengjie.org.cn ~]# egrep -v "^#|^$" /etc/rsyslog.conf 
    $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
    $ModLoad imjournal # provides access to the systemd journal
    $WorkDirectory /var/lib/rsyslog
    $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
    $IncludeConfig /etc/rsyslog.d/*.conf
    $OmitLocalLogging on
    $IMJournalStateFile imjournal.state
    *.info;mail.none;authpriv.none;cron.none                /var/log/messages
    authpriv.*                                              /var/log/secure
    mail.*                                                  -/var/log/maillog
    cron.*                                                  /var/log/cron
    *.emerg                                                 :omusrmsg:*
    uucp,news.crit                                          /var/log/spooler
    local7.*                                                /var/log/boot.log
    [root@node102.yinzhengjie.org.cn ~]# 

    2>.编辑rsyslog服务的配置文件

    [root@node102.yinzhengjie.org.cn ~]# vim /etc/rsyslog.conf 
    [root@node102.yinzhengjie.org.cn ~]# 
    [root@node102.yinzhengjie.org.cn ~]# egrep -v "^#|^$" /etc/rsyslog.conf 
    $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
    $ModLoad imjournal # provides access to the systemd journal
    $ModLoad imudp        #由于haproxy是基于udp方式发送日志消息的,因此我们需要加载支持udp协议的模块
    $UDPServerRun 514      #rsyslog的udp服务器默认端口是514
    $WorkDirectory /var/lib/rsyslog
    $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
    $IncludeConfig /etc/rsyslog.d/*.conf
    $OmitLocalLogging on
    $IMJournalStateFile imjournal.state
    *.info;mail.none;authpriv.none;cron.none                /var/log/messages
    authpriv.*                                              /var/log/secure
    mail.*                                                  -/var/log/maillog
    cron.*                                                  /var/log/cron
    *.emerg                                                 :omusrmsg:*
    uucp,news.crit                                          /var/log/spooler
    local7.*                                                /var/log/boot.log
    local5.*                                                /var/log/haproxy.log        #这里就是定义haproxy日志存放的路径
    [root@node102.yinzhengjie.org.cn ~]# 
    [root@node102.yinzhengjie.org.cn ~]# 

    3>.重启rsyslog服务

    [root@node102.yinzhengjie.org.cn ~]# systemctl restart rsyslog
    [root@node102.yinzhengjie.org.cn ~]# 
    [root@node102.yinzhengjie.org.cn ~]# netstat -untalp | grep rsyslog
    udp        0      0 0.0.0.0:514             0.0.0.0:*                           13310/rsyslogd      
    udp6       0      0 :::514                  :::*                                13310/rsyslogd      
    [root@node102.yinzhengjie.org.cn ~]# 
    [root@node102.yinzhengjie.org.cn ~]# 

    二.haproxy服务器配置

    1>.编辑haproxy的配置文件支持日志功能

    [root@node102.yinzhengjie.org.cn ~]# cat /etc/haproxy/haproxy.cfg
    global
        maxconn 100000
        chroot /yinzhengjie/softwares/haproxy
        stats socket /yinzhengjie/softwares/haproxy/haproxy.sock mode 600 level admin
        user haproxy
        group haproxy
        daemon
        nbproc 2
        cpu-map 1 0
        cpu-map 2 1
        nbthread 2
        pidfile /yinzhengjie/softwares/haproxy/haproxy.pid
        #将haproxy对应info级别的日志发送给本机的默认rsyslog日志服务对应的自定义服务"local5"类别上。
        log 127.0.0.1 local5 info
    
    defaults
        option http-keep-alive
        option  forwardfor
        option redispatch
        option abortonclose
        maxconn 100000
        mode http
        timeout connect 300000ms
        timeout client  300000ms
        timeout server  300000ms
    
    listen status_page
        bind 172.30.1.102:8888
        stats enable
        stats uri /haproxy-status
        stats auth    admin:yinzhengjie
        stats realm "Welcome to the haproxy load balancer status page of YinZhengjie"
        stats hide-version
        stats admin if TRUE
        stats refresh 5s
    
    listen WEB_PORT_80
        bind 172.30.1.102:80
        #捕捉请求报文中头部信息的"Host"字段长度为256(遗憾的是HAProxy 1.8版本不生效)
        capture request header Host len 256
        #捕捉请求报文中头部信息的"User-Agent"字段长度为512(遗憾的是HAProxy 1.8版本不生效)
        capture request header User-Agent len 512
        log global
        mode http
        option tcplog
        balance roundrobin
        cookie HAPROXY-COOKIE insert indirect nocache
        server web01 172.30.1.106:80  cookie httpd-106 check inter 3000 fall 3 rise 5
        server web02 172.30.1.107:80  cookie httpd-107 check inter 3000 fall 3 rise 5
        server web03 172.30.1.108:80  cookie httpd-107 check inter 3000 fall 3 rise 5 backup
    [root@node102.yinzhengjie.org.cn ~]# 
    [root@node102.yinzhengjie.org.cn ~]# systemctl restart haproxy
    [root@node102.yinzhengjie.org.cn ~]# 

    2>.浏览器访问haproxy的地址"http://node102.yinzhengjie.org.cn/"

    3>.查看haproxy的访问日志

  • 相关阅读:
    帆软学习之开始
    「csp模拟」模拟测试11
    「csp模拟」模拟测试4
    「csp模拟」模拟测试3
    「csp模拟」模拟测试2
    「csp模拟」模拟测试1
    layui表格中日期格式的处理,从数字变日期格式
    Layui下拉框的事件和表格的刷新
    Layui的下拉框
    Layui按钮的禁用和恢复
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/12122239.html
Copyright © 2011-2022 走看看