GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit HAProxy jako Load Balancer pro MariaDB na CentOS 7

V tomto tutoriálu vás provedu instalací clusteru MariaDB Galera na CentOS 7, který má vepředu vyvažovač zátěže HAProxy. Celkové nastavení se skládá ze 4 serverů. Pro databázové uzly použiji 3 servery CentOS 7, 2 uzly budou aktivní a 1 funguje jako záložní uzel. Čtvrtý server bude použit pro nástroj pro vyrovnávání zatížení HAProxy. Pro balanční algoritmus používáme lessconn (ale můžete použít i jiné algoritmy).

MariaDB je jedním z nejpopulárnějších relačních databázových serverů vytvořených původním vývojářem databázového serveru MySQL. MariaDB je fork MySQL, který podporuje úložiště XtraDB, úložiště InnoDB a nový modul úložiště zvaný aria.

MariaDB Galera Cluster je synchronní multi-master cluster pro MariaDB, který je dostupný pouze na operačních systémech založených na GNU/Linux. Galera Cluster podporuje pouze úložiště XtraDB a InnoDB. Používá knihovnu Galera pro replikaci s automatickým řízením členů, automatickým spojováním uzlů a pro čtení a zápis do uzlů clusteru.

Předpoklad

  • 4 servery CentOS 7 – 64bitové:

mariadb1
           192.168.1.132

           mariadb2
           192.168.1.133

           mariadb3
           192.168.1.134

           HAProxy
           192.168.1.135

  • Oprávnění root na všech čtyřech serverech.

Krok 1 – Instalace a konfigurace MariaDB Galera Cluster

V tomto kroku nainstalujeme a nakonfigurujeme MariaDB Galera Cluster na 3 serverech CentOS. Nainstalujeme server MariaDB-Galera, poté aktivujeme firewall a otevřeme některé porty pro databázi a další služby. Poté nainstalujeme skript clustercheck na každý server MariaDB, abychom mohli zkontrolovat stav serveru z HAProxy.

A. Nakonfigurujte názvy hostitelů a připravte základní systém

Přihlaste se ke všem databázovým serverům pomocí svého ssh účtu:

ssh [chráněno e-mailem]
ssh [chráněno e-mailem].133
ssh [chráněno e-mailem]

Přepněte se na uživatele root pomocí příkazu sudo:

sudo su

Upravte soubor hosts na každém serveru MariaDB a přidejte všechny adresy IP serveru a názvy hostitelů ostatních uzlů:

vi /etc/hosts

Viz moje konfigurace /etc/hosts níže:

192.168.1.132   mariadb1
192.168.1.133   mariadb2
192.168.1.134   mariadb3

Uložte soubor a ukončete.

Dále deaktivujte SELinux na každém serveru, protože způsobuje problémy s MariaDB Galera. Zakažte SELinux tímto příkazem sed:

sed -i -e 's/SELINUX=permisivní/SELINUX=disabled/g' /etc/sysconfig/selinux

sed (stream editor):nahraďte "SELINUX=permisivní" za "SELINUX=disabled" v souboru /etc/sysconfig/selinux.

B. Nainstalujte server MariaDB Galera Server

V tomto kroku nainstalujeme MariaDB Galera 10.0, která je dostupná v úložišti MariaDB.

Vytvořte nový soubor .repo v adresáři yum.repos.d pomocí příkazu vi:

vi /etc/yum.repos.d/mariadb.repo

Níže vložte podrobnosti o úložišti MariaDB Galera a uložte je:

# Seznam repozitářů MariaDB 10.0 CentOS – vytvořeno 09.07.2015 14:56 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
název =MariaDB
baseurl =http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck =1

Nyní nainstalujte MariaDB Galera Server and Client a některé další balíčky, které jsou vyžadovány pro tento tutoriál:

yum -y install MariaDB-Galera-server MariaDB-client galera rsync xinetd percona-toolkit precona-xtrabackup xinetd wget

Počkejte na dokončení procesu instalace.

C. Nakonfigurujte bránu firewall

Zapneme výchozí firewall CentOS 7 s názvem Firewalld. Zapneme jej a otevřeme TCP porty, které používají služby, které budeme instalovat.

3306 =Používá se pro připojení klientů MySQL/MariaDB.
4567 =Provoz replikace clusteru Galera.
873 =Rsync porty.
4444 =Pro všechny ostatní State Snapshot Transfer (SST).
9200 =xinetd - clustercheck.

Zapněte firewalld pomocí tohoto příkazu systemctl:

systemctl start firewalld

Nyní otevřete porty pomocí firewall-cmd:

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --permanent --add-port=4567/tcp
firewall-cmd --permanent --add -port=873/tcp
firewall-cmd --permanent --add-port=4444/tcp
firewall-cmd --permanent --add-port=9200/tcp

a znovu načtěte firewall:

firewall-cmd --reload

D. Nakonfigurujte MariaDB Galera Cluster

Přejděte do adresáře /etc/my.cnf.d/ a upravte soubor server.conf pomocí vi:

cd /etc/my.cnf.d/
vi server.conf

Odkomentujte a přidejte několik konfiguračních řádků, podrobnosti můžete vidět níže:

wsrep_provider=/usr/lib64/galera/libgalera_smm.so   # Cesta ke knihovně poskytovatele wsrep
wsrep_cluster_address="gcomm://192.168.1.132,192.168.1.133,192.16 Group all # IP serveru MardiaDB
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Přidejte nějakou konfiguraci níže
# Název clusteru
wsrep_cluster_name="mariadb_cluster"

# Přidat IP serveru - na mariadb2 =192.168.1.133 - na mariadb3 =192.168.1.134
wsrep_node_address="192.11.6 "

# Poskytovatel replikace s rsync
wsrep_sst_method=rsync

Uložte soubor a ukončete.

Na serveru mariadb1 spusťte cluster pomocí příkazu níže:

/etc/rc.d/init.d/mysql bootstrap

výsledek:

Bootstrapování clusteru.. Spouštění MySQL.. ÚSPĚCH!

Na serveru mariadb2 a mariadb3 spusťte MariaDB normálně:

/etc/init.d/mysql start

mariadb1 bootstraping.

mariadb2 a mariadb3 začínají.

MariaDB byla spuštěna na všech uzlech, nyní nakonfigurujte heslo root pro MariaDB na všech serverech pomocí příkazu níže:

/usr/bin/mysql_secure_installation

E. Nakonfigurujte Clustercheck

Clustercheck je užitečný bash skript, který umožňuje proxy (např. HAProxy) monitorovat server MariaDB.

Přejděte do adresáře /tmp a stáhněte skript pomocí wget:

cd /tmp
wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck

Nyní udělejte skript spustitelný změnou oprávnění a přesuňte jej do adresáře /usr/bin/:

chmod +x clustercheck
mv clustercheck /usr/bin/

Dále vytvořte skript xinetd pro clusterchek pomocí příkazu vi v adresáři „/etc/xinet.d/“:

vi /etc/xinetd.d/mysqlchk

Vložte konfiguraci níže:

# výchozí:zapnuto
# popis:mysqlchk
služba mysqlchk
{
        zakázat =no
        příznaky =ZNOVU POUŽÍT
        typ_zásuvky =stream
        port =9200             # Tento port, který používá xinetd pro kontrolu clusteru
        čekat =ne
        uživatel =nikdo
         server =/usr/bin_/fak kontrola> = ID_USER br   přihlášení only_from =0.0.0.0/0
        na_zdroj =NEOMEZENO
}

Uložte a ukončete.

Přidejte clustercheck do seznamu služeb:

vi /etc/services

Přejděte na řádek 10101, okomentujte služby, které používají port 9200 a přidejte nový řádek pro mysqlchk/clustercheck.

mysqlchk 9200/tcp # mysqlchk

# wap-wsp 9200/tcp # wap connections relace Service
# was-wsp 9200/udp # wap bez relace

Uložte soubor a ukončete.

Poté spusťte službu xinetd:

systemctl start xinetd

Chcete-li provést clustercheck, musíte vytvořit nového uživatele v MySQL. Přihlaste se do prostředí MariaDB a vytvořte nového uživatele se jménem "clustercheckuser" a heslem "clustercheckpassword!".

mysql -u root -p
UDĚLEJTE PROCES NA *.* TOMU 'clustercheckuser'@'localhost' IDENTIFIKOVANÉMU 'clustercheckpassword!';
exit;

V této fázi jsou všechny služby MariaDB synchronizovány.

Testování clusteru:

/usr/bin/clustercheck

Ujistěte se, že kód výsledků je 200.

Krok 2 – Instalace a konfigurace HAProxy

Přihlaste se k serveru HAProxy:

ssh [e-mail chráněný]

Staňte se uživatelem root a přidejte IP adresu serveru MariaDB a název hostitele do souboru "/etc/hosts":

sudo su
vi /etc/hosts

HAProxy je k dispozici v základním úložišti CentOS, spusťte tento příkaz yum a nainstalujte jej:

yum -y nainstalujte haproxy

Poté nakonfigurujte protokol pro HAProxy úpravou konfiguračního souboru rsyslog:

vi /etc/rsyslog.conf

Odkomentujte port udp:

# Poskytuje příjem syslogu UDP
$ModLoad imudp
$UDPServerRun 51

Uložte soubor a ukončete editor.

Přidejte konfiguraci HAProxy do adresáře rsyslog.d:

vi /etc/rsyslog.d/haproxy.conf

Vložte konfiguraci níže:

local2.=info     /var/log/haproxy-access.log
local2.notice    /var/log/haproxy-info.log

Uložte soubor a restartujte rsyslog:

systemctl restartujte rsyslog

Dále vytvořte nový konfigurační soubor HAProxy.

Přejděte do adresáře /etc/haproxy a zálohujte konfigurační soubor dafult haproxy.

cd /etc/haproxy/
mv haproxy.cfg haproxy.cfg.orig

Vytvořte nový konfigurační soubor haproxy:

vi /etc/haproxy/haproxy.cfg

A vložte konfiguraci HAProxy níže:

global
        log 127.0.0.1   local2
        maxconn 1024
        uživatel haproxy
        skupinový haproxy
        / soket spuštění       / spuštění daemon režim správce úrovně 600         # Vytvořit sock soubor pro haproxy

výchozí
        protokol      globální
        režim    http
         možnost  tcplog
     3 možnost
    3       br />        možnost  opětovné odeslání
        maxconn 1024
        časový limit připojení 5 000 ms
        časový limit klienta 50 000 ms
  >     0 sten 0 0 sten 3 mariad / br_0>## MariaDB balance lessconn – cluster naslouchající na portu 3030.
        režim tcp
        balance lessconn
        možnost httpchk
        server mariadb1 192.160:390.16 zkontrolovat port server mariadb2 192.168.1.133:3306 zkontrolujte port 9200
        server mariadb3 192.168.1.134:3306 zkontrolujte zálohu portu 9200       # Vytvořte mariadb3 jako záloha – automatická replikace dat

poslouchejte statistiky 0.0.0.0:9000
## HAProxy stats webové rozhraní běžící na portu 9000 – uživatelské jméno a heslo:howtoforge.
        režim http
        statistiky povolit
        statistiky uri /stats
        statistiky oblasti HAProxy\ Statistics
        statistiky auth howtoforge:howtoforge
        statistiky před správcem, pokud je PRAVDA

Port 3030 je port MariaDB s vyváženým zatížením, můžeme přistupovat k databázím na všech serverech MariaDB s IP vyrovnávání zatížení a tímto portem.

Port 9000 je port pro web-gui, umožňuje monitorování HAProxy z prohlížeče.

Nyní spusťte firewall, otevřete porty 9000 a 3030 a poté jej znovu načtěte:

systemctl start firewalld
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=3030/tcp
firewall- cmd --reload

Spusťte HAProxy příkazem systemctl:

systemctl start haproxy

Krok 3 – Testování HAProxy a MariaDB

A. Testování replikace

Přihlaste se na server MariaDB, přejděte do prostředí MySQL a vytvořte novou databázi z mariadb1, poté z mariadb2 a nakonec z mariadb3.

mysql -u root -p
vytvořit databázi this_mariadb1; # Spusťte toto na serveru mariadb1
vytvořte databázi this_mariadb2; # Spusťte toto na serveru mariadb2
vytvořte databázi this_mariadb3; # Spusťte to na serveru mariadb3

Zkontrolujte databáze:

B. Přístup k serveru MariaDB prostřednictvím HAProxy

Nyní přistupujeme ke clusteru serverů MariaDB a databázím prostřednictvím HAProxy IP na portu 3030.

Před provedením tohoto testu povolte vzdálený přístup k serveru MariaDB vytvořením nového uživatele root s hostitelem "%".

Přihlaste se do prostředí MariaDB a vytvořte nového uživatele „root“ s heslem „aqwe123“:

mysql -u root -p
UDĚLEJTE VŠECHNA OPRÁVNĚNÍ NA *.* KOMU [email protected]'%' IDENTIFIKUJE "aqwe123";

Dále přejděte do databázové tabulky 'mysql.user' prostřednictvím serveru HAProxy:

mysql -u root -p -h 192.168.1.135 -P 3030 -e "vybrat hostitele, uživatele, heslo z mysql.user"

Uživatele databázového serveru můžete vidět přístupem k IP load balanceru na portu 3030. K databázím na MySQL uzlech můžete přistupovat pomocí HAProxy IP na portu 3030.

Další test serveru:algoritmus nejmenšího spojení:

C. Přihlaste se do HAProxy Web-Gui

K monitorovacímu serveru HAProxy můžete přistupovat na portu 9000 s uživatelským jménem a heslem „howtoforge“ pro zobrazení webového uživatelského rozhraní HAProxy:

http://192.168.1.135:9000/stats

HAProxy byla úspěšně nainstalována a můžete vidět, že servery MariaDB jsou monitorovány.

Závěr

MariaDB Galera Cluster je synchronní multimaster cluster, který poskytuje vyrovnávání zátěže pro databáze MySQL. Toto je dobré řešení pro vybudování výkonného databázového systému pro váš web. MariaDB Galera Cluster podporuje úložiště xtradb a innodb, poskytuje automatickou replikaci a umožňuje automatické spojování nových uzlů. Jako load balancer můžeme použít HAProxy před databázovým clusterem. Nástroj pro vyrovnávání zatížení pomáhá distribuovat příchozí požadavky do všech databází. K monitorování databáze z HAProxy používáme bash skript clustercheck. MariaDB Galera Cluster a HAProxy je jedním z nejlepších řešení pro vybudování databázového systému s vysokou dostupností.


Cent OS
  1. Jak nastavit MariaDB Galera Cluster na Ubuntu 20.04

  2. Jak nakonfigurovat HAProxy load balancer

  3. Jak nastavit VNC Server pro nového uživatele v CentOS/RHEL 5

  1. Jak nainstalovat MariaDB na CentOS 7

  2. Jak nainstalovat MariaDB na CentOS 8

  3. Jak nastavit HAProxy jako Load Balancer pro Nginx na CentOS 7

  1. Jak nastavit SVN server na CentOS

  2. Jak nastavit PureFTPd na CentOS 7

  3. Jak nastavit ProjectSend nástroj pro sdílení souborů na CentOS 7