Cara mengatur MariaDB Galera Cluster dengan HAproxy di CentOS 7

Posted on

[ad_1] Cara mengatur MariaDB Galera Cluster dengan HAproxy di CentOS 7

Pada artikel hari ini kita akan menginstal MariaDB Galera cluster dengan HAproxy untuk memuat keseimbangan MariaDB dan wordpress. Galera adalah teknologi clustering aktif-aktif, yang berarti dapat mendukung penulisan ke semua node yang kemudian direplikasi di seluruh cluster. Ada juga pengelompokan aktif-pasif di mana hanya node yang dapat ditulis. Kami juga akan menginstal HAproxy di cluster kami untuk load balancing. Instalasi akan dilakukan pada 5 server CentOS 7, tiga untuk MariaDB 10.1 Galera, satu untuk Haproxy dan satu untuk WordPress. HAproxy bekerja dengan merutekan permintaan ke setiap node secara round-robin, sambil menyamar sebagai front-end. Di sini kami menggunakan metode pengelompokan tradisional di mana server basis data berada di jaringan pribadi dan hanya server web yang menghadap alamat IP publik.

Cluster galera MariaDB HAproxy

Menyiapkan kluster Galera

Kita harus menginstal mysql di semua server. Pertama, kita tambahkan tangki

echo '[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1' >> /etc/yum.repos.d/MariaDB.repo

Kemudian kita menginstal mariadb, rsync dan xinetd

sudo yum install mariadb-server rsync xinetd

Kita perlu mengedit /etc/hosts, editor mana pun akan melakukan ini, tetapi saya menggunakan nano

nano /etc/hosts

Misalnya, ada IP dan nama host Anda

192.168.207.241 mariadb01
192.168.209.91 mariadb02
192.168.129.168 mariadb03

Pastikan Anda menggunakan IP host pribadi Anda, jika Anda menggunakan yang publik, Anda perlu mengenkripsi lalu lintas di antara mereka untuk mengamankan cluster Anda.

Setelah menginstal MariaDB, edit

nano /etc/my.cnf.d/server.cnf

Anda harus menemukannya di semua server [galera] Rekatkan bagian tersebut ke dalam file dan buat seperti ini, simpan untuk alamat IP yang dicetak tebal dan perlu diubah.

[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so

#add your node ips here
wsrep_cluster_address="gcomm://192.168.207.241,192.168.209.91,192.168.129.168"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
#Cluster name
wsrep_cluster_name="linoxide_cluster"
# Allow server to accept connections on all interfaces.

bind-address=0.0.0.0

# this server ip, change for each server
wsrep_node_address="192.168.207.241"
# this server name, change for each server
wsrep_node_name="mariadb01"

wsrep_sst_method=rsync

Menatap gugusan Galera

Setelah mengonfigurasi ini, Anda harus memulai cluster

Pertama, di node mariadb01, yang merupakan master dari perintah ini

galera_new_cluster

Kemudian pada dua node lainnya dengan perintah systemctl biasa:

systemctl start mariadb

Selanjutnya kita dapat memverifikasi bahwa cluster sedang berjalan:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
gugus

Hal selanjutnya adalah menjalankan skrip mysql_secure_installation

mysql_secure_installation

Menyiapkan firewall

Sekarang ketiga node terhubung, kita dapat membuka firewall dan mengkonfigurasinya.

systemctl start firewalld

Buka duplikat port mariadb dan galera:

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --permanent --add-port=4567/tcp

Buka port rsync yang kami gunakan untuk replikasi

firewall-cmd --permanent --add-port=873/tcp

Port penting lainnya

firewall-cmd --permanent --add-port=4444/tcp
firewall-cmd --permanent --add-port=9200/tcp

Akhirnya muat ulang firewall

firewall-cmd --reload

Menggunakan xinetd dan clustercheck

Clustercheck adalah skrip pemantauan cluster yang berguna. Mari kita instal dengan perintah berikut

wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck
chmod +x clustercheck
mv clustercheck /usr/bin/

Selanjutnya, kita perlu menambahkan mysqlchk ke daftar layanan. Untuk itu kami mengedit file layanan:

nano /etc/services

Karena filenya panjang, di Nano, ketik Ctrl-W dan cari 9200. Semua layanan yang menggunakan port tersebut harus dikomentari dan layanan baru harus ditambahkan, sehingga bagian tersebut akan terlihat seperti ini:

mysqlchk 9200/tcp # mysqlchk
#wap-wsp 9200/tcp # WAP connectionless session service
#wap-wsp 9200/udp # WAP connectionless session service

Setelah ini disimpan dan selesai, kita dapat memulai xinetd

systemctl start xinetd

Semua ini harus dilakukan pada semua node dan sekarang hanya pada master kita perlu menambahkan pengguna untuk clustercheck.

mysql -u root -p

GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!';

exit;

Kemudian kita dapat mencoba skrip clustercheck

clustercheck
Analisis klaster

Menyiapkan HAproxy

Masuk ke server proxy yang Anda tunjuk. Kami sekarang memasang penyeimbang beban

Edit file /etc/hosts Anda seperti ini (tentu saja dengan IP Anda)

192.168.207.241 mariadb01
192.168.209.91 mariadb02
192.168.129.168 mariadb03
192.168.210.252 haproxy01

Kemudian kita dapat menginstal Haproxy

yum install haproxy

Selanjutnya kita perlu mengedit rsyslog.conf

nano /etc/rsyslog.conf

Abaikan dua baris itu

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

Simpan dan keluar

echo 'local2.=info /var/log/haproxy-access.log
local2.notice /var/log/haproxy-info.log
' >> /etc/rsyslog.d/haproxy.conf

Memungkinkan Anda untuk mencadangkan konfigurasi haproxy default

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bk

Kemudian kita buat file baru dengan nano

nano /etc/haproxy/haproxy.cfg

Gunakan pastebin ini sebagai konfigurasi, tetapi ubah alamat IP.

Saatnya mengatur firewall di node Haproxy

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

Kemudian muat ulang firewall

firewall-cmd --reload

Menyiapkan akses ke MariaDB dari HAproxy

Tentang tipe cluster mariadb:

mysql -u root -p

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY "verystrongpassword";

Kemudian kita pergi ke server haproxy01 dan mencoba mengakses database.

Anda harus menginstal MariaDB-client, jadi mari lakukan ini terlebih dahulu:

echo '[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1' >> /etc/yum.repos.d/MariaDB.repo

yang menambahkan repositori, perintah ini akan menginstalnya

yum install MariaDB-client

Dan kemudian biarkan jika

mysql -u root -p -h 192.168.210.252 -P 3030 -e "select Host, User, Password from mysql.user"
Akses proxy ha

Pastikan Anda memasukkan verystrongpassword sebagai kata sandi, bukan kata sandi biasa.

Menginstal WordPress

Akhirnya, kami meluncurkan WordPress untuk digunakan di cluster kami. Pada simpul mariadb01, simpul haproxy01 dan wp01 harus dilakukan.

di mariadb01

mysql -u root -p

CREATE DATABASE wordpress;

CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';

GRANT ALL ON wordpress.* TO wordpressuser@'192.168.210.252' IDENTIFIED BY 'password';

pada simpul wp01 yang diatur di /etc/hosts/

192.168.220.17 wp01
192.168.210.252 haproxy01

Tambahkan juga haproxy01

192.168.220.17 wp01

Pada langkah selanjutnya, kita perlu menginstal paket yang diperlukan di node wp01

yum install httpd php php-gd php-mysqlnd rsync

Dari sini kita perlu menggunakan akun non-root dengan hak sudo. Saya tidak punya, jadi saya akan membuatnya:

useradd miki
usermod miki -aG wheel

passwd miki

Kemudian masuk sebagai pengguna saya

su miki

Rute pulang

cd

Dan kemudian unduh WordPress versi terbaru dan buka

wget http://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz

Kami akan menggunakan rsync untuk menyalin wordpress ke direktori Apache

sudo rsync -avP ~/wordpress/ /var/www/html/
mkdir /var/www/html/wp-content/uploads

Kami juga perlu mengubah kepemilikan menjadi pengguna Apache

sudo chown -R apache:apache /var/www/html/*

Konfigurasi WordPress

WordPress dikonfigurasi dalam file wp-config.php, di sana kita perlu mengatur parameter seperti alamat host server database, kredensial login, nama database. Memungkinkan untuk membuat cadangan file konfigurasi:

cd /var/www/html

cp wp-config-sample.php wp-config.php

Dan kemudian kita melakukan pengeditan:

nano wp-config.php

Ganti saja baris-baris itu

define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

/** MySQL hostname */
define('DB_HOST', '192.168.210.252:3030');

Akhirnya, kami me-restart server web Apache:

sudo systemctl restart httpd

Selesaikan instalasi WordPress dari browser

Untuk melanjutkan langkah-langkah menginstal word-press, kita bisa pergi ke alamat umum node WordPress seperti di bawah ini

Terakhir tekan kata

Sekarang kita sudah menyiapkan cluster yang menjalankan WordPress

Dasbor

Hasil

Di sini kita telah menyiapkan wordpress di atas cluster Galera yang dihosting oleh HAproxy. Ini adalah solusi fleksibel untuk situs dengan beban tinggi, dan meskipun perlu beberapa waktu untuk menyiapkannya, ini memberi situs Anda asuransi kerusakan yang hampir lengkap. Semua lalu lintas antar node ditangani oleh alamat IP pribadi, dan hanya satu alamat publik yang digunakan untuk ujung depan WordPress untuk mengakses situs. Itu saja untuk artikel ini, terima kasih telah membaca dan semoga hari Anda menyenangkan.

[ad_2]

Source link

Leave a Reply

Your email address will not be published. Required fields are marked *