CentOS 7'de MariaDB için Yük Dengeleyici olarak HAProxy nasıl kurulur

CentOS 7'de MariaDB için Yük Dengeleyici olarak HAProxy nasıl kurulur


Bu derste, önünde HAProxy yük dengeleyicisine sahip olan CentOS 7 üzerine bir MariaDB kurulumunda size rehberlik edeceğim. Toplam kurulum 4 sunucudan oluşur. Veritabanı düğümleri için 3 CentOS 7 sunucusu kullanacağım, 2 node aktif olacak ve 1 yedek node gibi davranacak. Dördüncü sunucu HAProxy yük dengeleyici için kullanılacaktır. Denge algoritması için en az bağlantı kullanıyoruz (ancak diğer algoritmaları kullanabilirsiniz).

HAproxy Nedir,
HAProxy, yüksek erişilebilirliğe sahip yük dengeleyici ile TCP ve HTTP tabanlı uygulamalar için proxy sunucusu hizmeti veren açık kaynak kodlu bir yazılımdır. HAProxy 2000 yılında aynı zamanda Linux kernel yazılımcısı olan Willy Tarreau tarafından C ile yazılmış olup hızlı ve verimli olması ile ünlüdür.



MariaDB Nedir,
MariaDB, ilişkisel veritabanı sistemi olan MySQL'in kaynak kodundan türemiş, GNU Genel Kamu Lisansı altında dağıtılarak ücretsiz olarak kullanılabilen, geliştirilmesi ve bakımı topluluk tarafından sürdürülen veritabanıdır. WİKİ
MariaDB, MySQL Database sunucusunun orijinal geliştiricisi tarafından yapılan en popüler ilişkisel veritabanı sunucularından biridir. MariaDB, XtraDB depolama motorunu, InnoDB depolama motorunu ve aria adı verilen yeni bir depolama motorunu destekleyen bir MySQL çatalıdır.

MariaDB Galera Kümesi, yalnızca GNU / Linux tabanlı işletim sistemlerinde kullanılabilen, MariaDB için eşzamanlı bir çok ana kümedir. Storage Cluster, yalnızca XtraDB ve InnoDB depolama motorlarını destekler. Otomatik üye kontrolü ile çoğaltma, otomatik node birleştirme ve küme düğümlerine okuma ve yazma işlemleri için depolama kütüphanesini kullanır.

Bize gerekli olanlar;

4 CentOS 7 sunucu - 64bit:
mariadb1
192.168.1.111

mariadb2
192.168.1.112

mariadb3
192.168.1.113

HAProxy
192.168.1.114

Dört sunucuda da root ayrıcalıkları.

Adım 1 - MariaDB Depolama sunucusu Kurma ve Yapılandırma


Bu adımda, MariaDB depolama sunucusunu 3 CentOS sunucuya kuracak ve ayarlayacağız. MariaDB-depolama sunucusunu kuracağız, ardından güvenlik duvarını etkinleştirecek ve veritabanı ve diğer servisler için bazı portlar açacağız. Daha sonra her MariaDB sunucusuna küme komut dosyasını yükleyeceğiz, böylece sunucu durumunu HAProxy'den kontrol edebiliyor olacağız.
A. Ana bilgisayar adlarını yapılandırın ve temel sistemi hazırlayın

Tüm veritabanı sunucularına ssh hesabınızla giriş yapın:
Sudo komutuyla kök kullanıcıya geçin:
Kod:
sudo su
Her MariaDB sunucusundaki hosts dosyasını düzenleyin ve tüm sunucu IP adreslerini ve diğer cluster ana bilgisayar adlarını ekleyin:
Kod:
vi /etc/hosts
Aşağıdaki / etc / hosts yapılandırmasına bakın:
Kod:
192.168.1.111   mariadb1
192.168.1.112   mariadb2
192.168.1.113   mariadb3
Dosyayı kaydet ve çık.

Daha sonra, MariaDB galera ile ilgili sorunlara neden olduğu için her sunucuda SELinux'u devre dışı bırakın. SELinux'u şu sed komutuyla devre dışı bırakın:

sed -i -e 's/SELINUX=permissive/SELINUX=disabled/g' /etc/sysconfig/selinux
sed (stream editörü): / etc / sysconfig / selinux dosyasındaki "SELINUX = permissive" yerine "SELINUX = disabled" ile değiştirin.

B. MariaDB Galera Sunucusunu Kurulumu

Bu adımda, MariaDB deposunda bulunan MariaDB Galera 10.0'ı yükleyeceğiz.

Vi komutuyla yum.repos.d dizininde yeni bir .repo dosyası oluşturun:

vi /etc/yum.repos.d/mariadb.repo
MariaDB Galera depo detaylarını aşağıya yapıştırın ve kaydedin:
Kod:
# MariaDB 10.0 CentOS repository list - created 2015-07-09 14:56 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Şimdi MariaDB Galera Sunucusu ve İstemcisini ve bu eğitim için gerekli olan diğer paketleri yükleyin:

yum -y install MariaDB-Galera-server MariaDB-client galera rsync xinetd percona-toolkit precona-xtrabackup xinetd wget
Yükleme işlemi tamamlanıncaya kadar bekleyin.

C. Firewalld’ü Yapılandırın
CentOS 7'nin Firewalld adlı varsayılan güvenlik duvarını açacağız. Açacağız ve kuracağımız servislerin kullandığı TCP portlarını da açacağız.

3306 = MySQL / MariaDB istemci bağlantıları için kullanılır.
4567 = Galera Cluster çoğaltma trafiği.
873 = Rsync bağlantı noktaları.
4444 = Diğer tüm Devlet Anlık Görüntüsü Aktarımı (SST) için.
9200 = xinetd - küme denetimi.

Bu systemctl komutuyla güvenlik duvarını açın:
systemctl start firewalld
Şimdi portları firewall-cmd ile açın:
Kod:
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
ve firewalld'i yeniden yükleyin:
Kod:
firewall-cmd --reload
D. MariaDB Galera Kümesini Yapılandırma

/Etc/my.cnf.d/ dizinine gidin ve server.conf dosyasını vi ile düzenleyin:
Kod:
cd /etc/my.cnf.d/
vi server.conf
Uncomment ve bazı yapılandırma satırları ekleyerek aşağıdaki detayları görebilirsiniz:
Kod:
wsrep_provider=/usr/lib64/galera/libgalera_smm.so   # Path to wsrep provider library
wsrep_cluster_address="gcomm://192.168.1.132,192.168.1.133,192.168.1.134"   # Group Node, add all MardiaDB Server IP
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Add some configuration below
# Cluster Name
wsrep_cluster_name="mariadb_cluster"

# Add Server IP - on mariadb2 = 192.168.1.133 - on mariadb3 = 192.168.1.134
wsrep_node_address="192.168.1.132"

# Replication Provider with rsync
wsrep_sst_method=rsync
Dosyayı kaydet ve çık.

Mariadb1 sunucusunda kümeyi aşağıdaki komutu kullanarak açalım:

/etc/rc.d/init.d/mysql bootstrap
sonuç;
Bootstrapping the cluster.. Starting MySQL.. SUCCESS!
Mariadb2 ve mariadb3 sunucusunda, normal olarak MariaDB'yi başlatın:
/etc/init.d/mysql start
mariadb1 bootstrap
mariadb-1.png

mariadb2 ve mariadb3 başlat;
mariadb-2.png

mariadb-3.png


MariaDB tüm sunucularda başlatıldı, şimdi MariaDB'nin root şifresini aşağıdaki komutlarla tüm sunucularda yapılandırın:
/usr/bin/mysql_secure_installation

E. Clustercheck'i yapılandırın

Clustercheck, MariaDB sunucusunu izleme yeteneğine sahip bir proxy (ör: HAProxy) yapmak için kullanışlı bir bash betiğidir.

/ Tmp dizinine gidin ve betiği wget ile indirin:

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

Şimdi betiği izinleri değiştirerek çalıştırılabilir hale getirin ve / usr / bin / dizinine getirin:
Bash:
chmod +x clustercheck
mv clustercheck /usr/bin/
Daha sonra, "/etc/xinet.d/" dizinindeki vi komutuyla birlikte clusterchek için bir xinetd betiği oluşturun:
vi /etc/xinetd.d/mysqlchk
Yapılandırmayı aşağıya yapıştırın:
Bash:
# default: on
# description: mysqlchk
service mysqlchk
{
        disable = no
        flags = REUSE
        socket_type = stream
        port = 9200             # This port used by xinetd for clustercheck
        wait = no
        user = nobody
        server = /usr/bin/clustercheck
        log_on_failure += USERID
        only_from = 0.0.0.0/0
        per_source = UNLIMITED
}
Kaydet ve çık.

Hizmetler listesine küme denetimi ekleyin:
vi /etc/services

10101 numaralı satıra gidin, 9200 numaralı bağlantı noktasını kullanan hizmetleri yorumlayın ve mysqlchk / clustercheck için yeni bir satır ekleyin.
Bash:
mysqlchk        9200/tcp                # mysqlchk

#wap-wsp         9200/tcp                # WAP connectionless session service
#wap-wsp         9200/udp                # WAP connectionless session service
Dosyayı kaydet ve çık.

Ardından xinetd servisini başlatın:
systemctl start xinetd

Küme denetimini gerçekleştirmek için MySQL'de yeni bir kullanıcı oluşturmanız gerekir. MariaDB kabuğuna giriş yapın ve "clustercheckuser" ve parola "clustercheckpassword!" Adlı yeni bir kullanıcı oluşturun.
Kod:
mysql -u root -p
GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!' ;
exit;
mariadb-4.png

Bu aşamada, tüm MariaDB servisleri senkronize edilir.

Küme kontrol sınama:
/usr/bin/clustercheck

Sonuç kodunun 200 olduğundan emin olun.
mariadb-5.png


Adım 2 - HAProxy'i Kurma ve Yapılandırma

HAProxy sunucusuna giriş yapın:
ssh [email protected]
Kök kullanıcı olun ve MariaDB sunucusu IP'sini ve ana bilgisayar adını "/ etc / hosts" dosyasına ekleyin:
Kod:
sudo su
vi /etc/hosts
HAProxy, CentOS ana havuzunda bulunur, yüklemek için bu yum komutunu çalıştırın:
yum -y install haproxy

Ardından, rsyslog yapılandırma dosyasını düzenleyerek HAProxy günlüğünü yapılandırın:
vi /etc/rsyslog.conf

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 51

Dosyayı kaydedin ve editörden çıkın.

HAProxy yapılandırmasını rsyslog.d dizinine ekleyin:
vi /etc/rsyslog.d/haproxy.conf
Yapılandırmayı aşağıya yapıştırın:
Kod:
local2.=info     /var/log/haproxy-access.log
local2.notice    /var/log/haproxy-info.log
Dosyayı kaydedin ve rsyslog'u yeniden başlatın:
systemctl restart rsyslog
Ardından, yeni bir HAProxy yapılandırma dosyası oluşturun.

/ Etc / haproxy dizinine gidin ve dafult haproxy yapılandırma dosyasını yedekleyin.
Kod:
cd /etc/haproxy/
mv haproxy.cfg haproxy.cfg.orig
Yeni haproxy yapılandırma dosyası oluşturun:
vi /etc/haproxy/haproxy.cfg
HAProxy yapılandırmasını aşağıya yapıştırın:
Bash:
global
        log 127.0.0.1   local2
        maxconn 1024
        user haproxy
        group haproxy
        daemon
        stats socket /var/run/haproxy.sock mode 600 level admin         # Make sock file for haproxy

defaults
        log     global
        mode    http
        option  tcplog
        option  dontlognull
        retries 3
        option  redispatch
        maxconn 1024
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms

listen mariadb_cluster 0.0.0.0:3030
## MariaDB balance leastconn - the cluster listening on port 3030.
        mode tcp
        balance leastconn
        option httpchk
        server mariadb1 192.168.1.132:3306 check port 9200
        server mariadb2 192.168.1.133:3306 check port 9200
        server mariadb3 192.168.1.134:3306 check port 9200 backup       # Make mariadb3 as backup - automatic replication data

listen stats 0.0.0.0:9000
## HAProxy stats web gui running on port 9000 - username and password: rabbyte.
        mode http
        stats enable
        stats uri /stats
        stats realm HAProxy\ Statistics
        stats auth rabbyte:rabbyte
        stats admin if TRUE
Bağlantı noktası 3030, yük dengeli MariaDB bağlantı noktasıdır, tüm MariaDB sunucularındaki veritabanlarına yük dengeleyici IP ve bu bağlantı noktası ile erişebiliriz.

Bağlantı noktası 9000, web arayüzün bağlantı noktasıdır, HAProxy'nin tarayıcıdan izlenmesine olanak tanır.

Şimdi firewalld'i başlatın, 9000 ve 3030 portlarını açın ve tekrar yükleyin:
Kod:
systemctl start firewalld
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=3030/tcp
firewall-cmd --reload
HAProxy'yi systemctl komutuyla başlatın:
systemctl başlangıç haproxy

Adım 3 - HAProxy ve MariaDB'nin Test Edilmesi
A. Çoğaltma testi


MariaDB sunucusuna giriş yapın, MySQL kabuğuna erişin ve mariadb1'den, sonra mariadb2'den ve son olarak mariadb3'ten yeni bir veritabanı oluşturun.
Bash:
mysql -u root -p
create database this_mariadb1;  # Run this on mariadb1 server
create database this_mariadb2;  # Run this on mariadb2 server
create database this_mariadb3;  # Run this on mariadb3 server
Check the databases:
mariadb-6.png

B. MariaDB Sunucusu HAProxy'ye erişin

Şimdi MariaDB sunucu kümesine ve veri tabanlarına 3030 portundaki HAProxy IP üzerinden erişiyoruz.

Bu testi yapmadan önce, "%" ana bilgisayarıyla yeni bir kullanıcı kökü oluşturarak MariaDB sunucusuna uzaktan erişim sağlayın.

MariaDB kabuğuna giriş yapın ve "aqwe123" şifresiyle yeni bir kullanıcı "root" oluşturun:
Kod:
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO [email protected]'%' IDENTIFIED BY "aqwe123";
Ardından, 'mysql.user' veritabanı tablosuna HAProxy sunucusu üzerinden erişin:
Kod:
mysql -u root -p -h 192.168.1.135 -P 3030 -e "select Host, User, Password from mysql.user"
mariadb-7.png

3030 numaralı bağlantı noktasındaki yük dengeleyici IP'ye erişerek veritabanı sunucusunun kullanıcılarını görebilirsiniz. 3030 numaralı bağlantı noktasındaki HAProxy IP'ye erişerek MySQL düğümlerindeki veritabanlarına erişebilirsiniz.

Sunucunun başka bir testi: en az bağlantı algoritması:
mariadb-8.png


C. HAProxy Web-Gui'ye giriş

HAProxy web kullanıcı arayüzünü göstermek için 9000 portundaki HAProxy izleme sunucusuna, "rabbyte" kullanıcı adı ve şifresi ile erişebilirsiniz:

mariadb-9.png

HAProxy başarıyla kuruldu ve MariaDB sunucularının izlendiğini görebilirsiniz.

Sonuç

MariaDB Galera Cluster, MySQL veritabanları için yük dengeleme sağlayan senkronize bir çok-ana kümedir. Bu, siteniz için güçlü bir veritabanı sistemi oluşturmak için iyi bir çözümdür. MariaDB Galera Cluster, xtradb ve innodb depolama motorlarını destekler, otomatik çoğaltma sağlar ve yeni düğümlerin otomatik olarak birleştirilmesine izin verir. HAProxy'yi veritabanı kümesi önünde yük dengeleyici olarak kullanabiliriz. Yük dengeleyici gelen isteklerin tüm veritabanlarına dağıtılmasına yardımcı olur. HAProxy'den veritabanı izlemesi yapmak için bash betiği clustercheck komutunu kullanıyoruz. MariaDB Galera Küme ve HAProxy, yüksek kullanılabilirlikli bir veritabanı sistemi oluşturmak için en iyi çözümlerden biridir.

Kaynak: Howtoforge, Haproxy, Mariadb

Original source

About author
Slaweally
Ben Ali Çömez (Slaweally) Uzun yıllar internet sektöründe zaman geçirdikten sonra tecrübelerimi sizinle paylaşmak için buradayım.

Comments

There are no comments to display.

linux information

Yazar
Slaweally
Görüntüleme
172
Last update
Author rating
4.75 yıldız(lar)

More in Linux - Unix sistem Dökümanları

More from Slaweally