install maxscale sebagai loadbalancer pada ubuntu 16 dan 18

install maxscale
berikut kami jelaskan sedikit tentang maxscale, maxscale adalah loadbalancer database produksi mariadb (hahhaha segitu aja ya).

mari samakan persepsi servernya

dalam tulisan kami ini, kita buat 4 server, 3 database dan 1 maxscale

db1     10.3.241.63
db2     10.3.241.62
db3     10.3.241.54
lb01    10.3.241.57

ikuti langkah-langkah sebagai berikut

1. Download repo nya mariadb dan install
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
apt-get install maxscale


2. Buat user maxscale_usr di database
create user 'maxscale_usr'@'%' identified by '123456';
grant SELECT on mysql.user to 'maxscale_usr'@'%';
GRANT SELECT ON mysql.db TO 'maxscale_usr'@'%';
GRANT SELECT ON mysql.tables_priv TO 'maxscale_usr'@'%';
GRANT SHOW DATABASES ON *.* TO 'maxscale_usr'@'%';
GRANT SELECT ON mysql.roles_mapping TO 'maxscale_usr'@'%';
grant REPLICATION CLIENT on *.* to 'maxscale_usr'@'%';
3. Buat Security password yang ter enkripsi, dengan perintah berikut ini

# tentukan base foldernya dengan perintah berikut ini
maxkeys /var/lib/maxscale/
# buat password maxscale
maxpasswd your_password
C5E5056B10F1C6D83EACEE213753D8DA .  <-- hasilnya
#change owner nya
chown maxscale.maxscale /var/lin/maxscale/.secret

4. Buat Configurasi maxscle yang basic simple seperti berikut

#buat maxscale.cnf baru yang lama di backup

#isi maxscale.cnf baru
[maxscale]
threads=auto
[rwsplit-service]
type=service
router=readwritesplit
user=maxscale
passwd=C5E5056B10F1C6D83EACEE213753D8DA <-contoh hasil eksekusi maxpassword
[CLI]
type=service
router=cli
[CLI Listener]
type=listener
service=CLI
protocol=maxscaled
socket=default

5. buat service monitor maxscale

maxadmin create monitor galera-monitor galeramon
maxadmin alter monitor galera-monitor user=maxscale_usr password=C5E5056B10F1C6D83EACEE213753D8DA monitor_interval=1000
maxadmin restart monitor galera-monitor
keterangan:
1. maxscale_user , adalah user yang kita buat di database
2. password, adalah password yang kita buat/encrypt dengan maxpasswd
3. 1000, adalah interval monitoring dalam satuan miliseconds

6. buat listener, dengan perintah berikut ini
maxadmin create listener rwsplit-service rwsplit-listener 0.0.0.0 6003 
keterangan:
1. 0.0.0.0, adalah bind address server yang dapat mengakses maxscale
2. 6003 adalah port yang akan dibuka untuk akses msql / database


7. masukkan server dan port database
maxadmin create server db1 10.3.241.54 3306
maxadmin create server db2 10.3.241.62 3306
maxadmin create server db3 10.3.241.63 3306
Keterangan:
1. 3306 adalah port yang dibuka untuk akses database secara langsung


8. masukan service  split untuk menentukan akses maxscale

maxadmin add server db1 galera-monitor rwsplit-service
maxadmin add server db2 galera-monitor rwsplit-service
maxadmin add server db3 galera-monitor rwsplit-service
9. buat cache buat baru file ini /var/lib/maxscale/maxscale.cnf.d/maxcached.cnf 
[maxcache]
type=filter
module=cache
storage=storage_inmemory
soft_ttl=180
hard_ttl=180
max_resultset_rows=0
max_count=0
max_size=100M
max_resultset_size=128M
cached_data=shared
selects=assume_cacheable


10. tambahkan filter di file /var/lib/maxscale/maxscale.cnf.d/rwsplit-service.cnf

filters=maxcache


### sampai sini configurasi maxscale sudah selesai, cek confignya dengan

systemctl start maxscale

cek statusnya

maxadmin list servers
-------------------+-----------------+-------+-------------+--------------------
Server               |  Address         | Port  | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
db1                    | 10.3.241.54     |  3306 |               0 | Master, Synced, Running
db3                    | 10.3.241.63     |  3306 |               0 | Slave, Synced, Running
db2                    | 10.3.241.62     |  3306 |               0 | Slave, Synced, Running
-------------------+-----------------+-------+-------------+--------------------
keterangan: status nya harus menyatakan Master/Slave, Synced, dan Running
Master = adalah node yang digunakan untuk proses write
Slave = adalah node yang digunakan untuk proses read

Tips.
untuk mengoptimalkan write/read gunakan perintah weight pada configurasi maxscale. baca-baca disini

 1. buka file

vim var/lib/maxscale/maxscale.cnf.d/db1.cnf
[db1] 
type=server 
address=10.3.241.63 
protocol=mariadbbackend 
port=3306 
extra_port=0 
persistpoolmax=0 
persistmaxtime=0 
proxy_protocol=false 
ssl=false 
ssl_version=MAX 
ssl_cert_verify_depth=9 
ssl_verify_peer_certificate=true 
rank=primary 
srv_weight=20 #<==tambahkan weight 

vim var/lib/maxscale/maxscale.cnf.d/db1.cnf

[db2] 
type=server 
address=10.3.241.62
protocol=mariadbbackend 
port=3306 
extra_port=0 
persistpoolmax=0 
persistmaxtime=0 
proxy_protocol=false 
ssl=false 
ssl_version=MAX 
ssl_cert_verify_depth=9 
ssl_verify_peer_certificate=true 
rank=primary 
srv_weight=40 #<==tambahkan weight 


vim var/lib/maxscale/maxscale.cnf.d/db1.cnf

[db3] 
type=server 
address=10.3.241.57
protocol=mariadbbackend 
port=3306 
extra_port=0 
persistpoolmax=0 
persistmaxtime=0 
proxy_protocol=false 
ssl=false 
ssl_version=MAX 
ssl_cert_verify_depth=9 
ssl_verify_peer_certificate=true 
rank=primary 
srv_weight=40 #<==tambahkan weight 


selesai, sampai tahap ini maxscale sudah dapat digunakan, liat blog kami lainnya untuk setup database mysql menjadi cluster dengan galera disini

thanks
YAP

Comments

  1. terkait langkah ke 2, create user nya di masternya kah atau server maxscale

    ReplyDelete

Post a Comment

Popular posts from this blog

Configure Open Smtp google with Postfix

membuat random password di linux

ISCSI