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的訪問日志

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM