Pagbalanse sa load sa Zimbra Open-Source Edition gamit ang HAProxy

Usa sa mga nag-unang buluhaton sa pagtukod sa dagkong mga imprastraktura sa Zimbra OSE mao ang husto nga pagbalanse sa load. Dugang pa sa kamatuoran nga kini nagdugang sa sayup nga pagtugot sa serbisyo, nga walay pagbalanse sa load imposible nga masiguro ang parehas nga pagtubag sa serbisyo alang sa tanan nga mga tiggamit. Aron masulbad kini nga problema, gigamit ang mga balanse sa pagkarga - mga solusyon sa software ug hardware nga nag-apod-apod usab sa mga hangyo tali sa mga server. Taliwala kanila adunay mga medyo karaan, sama sa RoundRobin, nga nagpadala lang sa matag sunod nga hangyo sa sunod nga server sa lista, ug adunay usab mga labi ka abante, pananglitan ang HAProxy, nga kaylap nga gigamit sa mga imprastraktura sa high-load nga kompyuter tungod sa usa ka gidaghanon sa mahinungdanon nga mga bentaha. Atong tan-awon kung giunsa nimo mahimo ang HAProxy load balancer ug Zimbra OSE nga magtinabangay.

Pagbalanse sa load sa Zimbra Open-Source Edition gamit ang HAProxy

Busa, sumala sa mga termino sa buluhaton, gihatagan kami sa imprastraktura sa Zimbra OSE, nga adunay duha ka Zimbra Proxy, duha ka LDAP ug LDAP Replica server, upat ka mail storage nga adunay 1000 ka mailbox matag usa ug tulo ka MTA. Tungod kay nag-atubang kami sa usa ka mail server, makadawat kini og tulo ka matang sa trapiko nga nagkinahanglan og pagbalanse: HTTP alang sa pag-download sa web client, ingon man POP ug SMTP alang sa pagpadala sa email. Sa kini nga kaso, ang trapiko sa HTTP moadto sa mga server sa Zimbra Proxy nga adunay mga IP address nga 192.168.0.57 ug 192.168.0.58, ug ang trapiko sa SMTP moadto sa mga server sa MTA nga adunay mga IP address nga 192.168.0.77 ug 192.168.0.78.

Sama sa nahisgutan na, aron masiguro nga ang mga hangyo parehas nga giapod-apod tali sa mga server, among gamiton ang HAProxy load balancer, nga modagan sa Zimbra infrastructure ingress node nga nagpadagan sa Ubuntu 18.04. Ang pag-install sa haproxy sa kini nga operating system gihimo gamit ang mando sudo apt-get install haproxy. Human niini kinahanglan nimo sa file /etc/default/haproxy pagbag-o sa parameter ENABOT=0 sa ENABOT=1. Karon, aron masiguro nga ang haproxy nagtrabaho, isulod lang ang mando serbisyo haproxy. Kon kini nga serbisyo nagdagan, kini mahimong tin-aw gikan sa output sa sugo.

Usa sa mga nag-unang disbentaha sa HAProxy mao nga pinaagi sa default dili kini ipadala ang IP address sa nagkonektar nga kliyente, gipulihan kini sa kaugalingon. Kini mahimong mosangpot sa mga sitwasyon diin ang mga email nga gipadala sa mga tig-atake dili mailhan pinaagi sa IP address aron idugang kini sa blacklist. Apan, kini nga isyu mahimong masulbad. Aron mahimo kini kinahanglan nimo nga usbon ang file /opt/zimbra/common/conf/master.cf.in sa mga server nga adunay Postfix ug idugang ang mosunod nga mga linya niini:

26      inet  n       -       n       -       1       postscreen
        -o postscreen_upstream_proxy_protocol=haproxy
 
466    inet  n       -       n       -       -       smtpd
%%uncomment SERVICE:opendkim%%  -o content_filter=scan:[%%zimbraLocalBindAddress%%]:10030
        -o smtpd_tls_wrappermode=yes
        -o smtpd_sasl_auth_enable=yes
        -o smtpd_client_restrictions=
        -o smtpd_data_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_recipient_restrictions=
        -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
        -o syslog_name=postfix/smtps
        -o milter_macro_daemon_name=ORIGINATING
        -o smtpd_upstream_proxy_protocol=haproxy
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_filter=[%%zimbraLocalBindAddress%%]:10027
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_options=speed_adjust
 
588 inet n      -       n       -       -       smtpd
%%uncomment SERVICE:opendkim%%  -o content_filter=scan:[%%zimbraLocalBindAddress%%]:10030
        -o smtpd_etrn_restrictions=reject
        -o smtpd_sasl_auth_enable=%%zimbraMtaSaslAuthEnable%%
        -o smtpd_tls_security_level=%%zimbraMtaTlsSecurityLevel%%
        -o smtpd_client_restrictions=permit_sasl_authenticated,reject
        -o smtpd_data_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_recipient_restrictions=
        -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
        -o syslog_name=postfix/submission
        -o milter_macro_daemon_name=ORIGINATING
        -o smtpd_upstream_proxy_protocol=haproxy
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_filter=[%%zimbraLocalBindAddress%%]:10027
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_options=speed_adjust

Tungod niini, among ablihan ang mga pantalan 26, 466 ug 588, nga makadawat sa umaabot nga trapiko gikan sa HAProxy. Human ma-save ang mga file, kinahanglan nimong i-restart ang Postfix sa tanan nga mga server gamit ang zmmtactl restart command.

Pagkahuman niana, magsugod kita sa pag-set up sa HAProxy. Aron mahimo kini, paghimo una usa ka backup nga kopya sa file sa mga setting cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak. Dayon ablihi ang tinubdan nga file sa usa ka text editor /etc/haproxy/haproxy.cfg ug magsugod sa pagdugang sa gikinahanglan nga mga setting niini sa matag lakang. Ang una nga bloke mao ang pagdugang sa usa ka server nga nagkuha og mga troso, nga nagtakda sa labing taas nga gitugotan nga gidaghanon sa dungan nga mga koneksyon, ingon usab ang pagtino sa ngalan ug grupo sa tiggamit kung diin ang proseso sa pagpatuman.

global
    user daemon
    group daemon
    daemon
    log 127.0.0.1 daemon
    maxconn 5000
    chroot /var/lib/haproxy

Ang numero sa 5000 ka dungan nga koneksyon nagpakita sa usa ka rason. Tungod kay kami adunay 4000 ka mailbox sa among imprastraktura, kinahanglan namon nga tagdon ang posibilidad nga silang tanan maka-access sa ilang email sa trabaho sa parehas nga oras. Dugang pa, kinahanglan nga magbilin usa ka gamay nga reserba kung ang ilang gidaghanon modaghan.

Karon magdugang ta og block nga adunay default settings:

defaults
        timeout client 1m
        log global
        mode tcp
        timeout server 1m
        timeout connect 5s

Kini nga block nagtakda sa labing taas nga timeout alang sa kliyente ug server aron isira ang koneksyon kung kini matapos, ug nagtakda usab sa operating mode sa HAProxy. Sa among kaso, ang load balancer naglihok sa TCP mode, nga mao, kini nagpadala lamang sa mga TCP packet nga walay pag-analisar sa ilang mga sulod.

Sunod magdugang kami mga lagda alang sa mga koneksyon sa lainlaing mga pantalan. Pananglitan, kung ang port 25 gigamit alang sa mga koneksyon sa SMTP ug pagpadala sa mail, nan makatarunganon nga ipasa ang mga koneksyon niini sa mga MTA nga magamit sa among imprastraktura. Kung ang koneksyon naa sa port 80, nan kini usa ka hangyo sa http nga kinahanglan ipasa sa Zimbra Proxy.

Lagda alang sa port 25:

frontend smtp-25
bind *:27
default_backend backend-smtp-25
 
backend backend-smtp-25
server mta1 192.168.0.77:26 send-proxy
server mta2 192.168.0.78:26 send-proxy

Lagda alang sa port 465:

frontend smtp-465
bind *:467
default_backend backend-smtp-465

backend backend-smtp-465
server mta1 192.168.0.77:466 send-proxy
server mta2 192.168.0.78:466 send-proxy

Lagda alang sa port 587:

frontend smtp-587
bind *:589
default_backend backend-smtp-587
 
backend backend-smtp-587
server mail1 192.168.0.77:588 send-proxy
server mail2 192.168.0.78:588 send-proxy

Lagda alang sa port 80:

frontend http-80
bind    *:80
default_backend http-80
 
backend http-80
mode tcp
server zproxy1 192.168.0.57:80 check
server zproxy2 192.168.0.58:80 check

Lagda alang sa port 443:

frontend https
bind  *:443
default_backend https-443
 
backend https-443
mode tcp
server zproxy1 192.168.0.57:80 check
server zproxy2 192.168.0.58:80 check

Palihug timan-i nga sa mga lagda alang sa pagpasa sa mga TCP packet ngadto sa MTA, sunod sa ilang mga adres adunay usa ka parameter ipadala-proxy. Kinahanglan kini aron, subay sa mga pagbag-o nga among gihimo sa sayo pa sa mga setting sa Postfix, ang orihinal nga IP address sa nagpadala niini ipadala kauban ang mga pakete sa TCP.

Karon nga ang tanan nga gikinahanglan nga mga pagbag-o nahimo na sa HAProxy, mahimo nimong i-restart ang serbisyo gamit ang mando pag-restart sa serbisyo haproxy ug magsugod sa paggamit niini.

Para sa tanang pangutana nga may kalabotan sa Zextras Suite, mahimo nimong kontakon ang Representante sa Zextras Ekaterina Triandafilidi pinaagi sa e-mail [protektado sa email]

Source: www.habr.com

Idugang sa usa ka comment