博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix高可用搭建--数据库集群(2)
阅读量:5901 次
发布时间:2019-06-19

本文共 7474 字,大约阅读时间需要 24 分钟。

一、数据mariadb集群搭建分为两个内容

1、负载均衡搭建
2、mariadb galera cluster
二、负载均衡搭建
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。本次采用lvs的DR模式
2.1 安装keepalive和lvs安装包
yum install -y ##### keepalived 安装keepalive
yum install -y ipvsadm ##### 安装装lvs
2.2、编辑keepalive的配置,keepalive与网络的vrrp原理一样
vi /etc/keepalive/keepalived.conf
vrrp_instance VI_1 {
state MASTER
! nopreempt
interface chkconfig keepalived on
garp_master_delay 10
virtual_router_id 50
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass zabbix
}
virtual_ipaddress {
192.168.1.157
}
}

virtual_server 192.168.1.157 3306 {

delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP

real_server  192.168.1.154 3306 {    weight 1    TCP_CHECK {        connect_port 3306        connect_timeout 3        nb_get_retry 3        delay_before_retry 3    }}real_server  192.168.1.155 3306 {    weight 1    TCP_CHECK {        connect_port 3306        connect_timeout 3        nb_get_retry 3        delay_before_retry 3    }}

real_server 192.168.1 3306 {

weight 1
TCP_CHECK {
connect_port 3306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}

}

}

2.3.开启keepalive、ipvsam服务

systemctl start keepalived
systemctl start ipvsam
2.4、验证
ipvsam 查看负载情况
三、mariadb 集群
3.1 数据库安装
分别在三台主机安装mariadb的数据,本次安装10.3.14版本的数据,较为稳定的版本
vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB-10.3.14
baseurl=

alternative: baseurl=

gpgkey=

gpgcheck=1

[root@localhost /]# yum install mariadb-server -y

Loaded plugins: langpacks, product-id, subscription-manager
Complete!
[root@localhost /]# rpm -qa | grep mariadb
mariadb-server-5.5.50-1.el7_2.x86_64
mariadb-libs-5.5.50-1.el7_2.x86_64
mariadb-5.5.50-1.el7_2.x86_64
mariadb-devel-5.5.50-1.el7_2.x86_64
启动mariadb服务程序并添加到开机启动项中:
[root@localhost /]# systemctl start mariadb
[root@localhost /]# systemctl enable mariadb
[root@localhost /]# netstat -anpt | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 22418/mysqld
[root@localhost /]# ps -ef | grep mariadb
mysql 22418 22259 0 00:39 ? 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root 22459 1092 0 00:40 pts/0 00:00:00 grep --color=auto mariadb
[root@localhost /]# ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'
为了保证数据库的安全性,一定要进行初始化工作:
第1步:设定root用户密码。
第2步:删除匿名帐号。
第3步:禁止root用户从远程登陆。
第4步:删除test数据库并取消对其的访问权限。
第5步:刷新授权表,让初始化后的设定立即生效。
初始化数据库服务程序:
[root@localhost /]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 当前数据库密码为空,直接敲击回车。
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password: 输入要为root用户设置的数据库密码。
Re-enter new password: 重复再输入一次密码。
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y(删除匿名帐号)
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y(禁止root用户从远程登陆)
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y(删除test数据库并取消对其的访问权限)

  • Dropping test database...
    ... Success!
  • Removing privileges on test database...
    ... Success!
    Reloading the privilege tables will ensure that all changes made so far
    will take effect immediately.
    Reload privilege tables now? [Y/n] y(刷新授权表,让初始化后的设定立即生效)
    ... Success!
    Cleaning up...
    All done! If you've completed all of the above steps, your MariaDB
    installation should now be secure.
    Thanks for using MariaDB!
    使用root用户登陆到数据库中:
    [root@localhost /]# mysql -u root -p
    Enter password: 此处输入root用户在数据库中的密码。
    Welcome to the MariaDB monitor. Commands end with ; or \g.
    Your MariaDB connection id is 5
    Server version: 5.5.35-MariaDB MariaDB Server
    Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    MariaDB [(none)]>
    查看当前已有的数据库:
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | mysql |
    | performance_schema |
    +--------------------+
    3 rows in set (0.01 sec)
    3.2 配置集群
    vi /etc/my.conf
    [mysqld]
    binlog_format=ROW
    default-storage-engine=innodb
    innodb_autoinc_lock_mode=2
    bind-address=0.0.0.0

    Galera Provider Configuration

    wsrep_on=ON

    wsrep_provider=/usr/lib64/galera/libgalera_smm.so

    Galera Cluster Configuration

    wsrep_cluster_name="galera_cluster"

    wsrep_cluster_address="gcomm://192.168.1.192.168.1.155,192.168.1.156,"

Galera Synchronization Configuration

wsrep_sst_method=rsync

Galera Node Configuration

wsrep_node_address="192.168.1.156" #####其他节点需要修改

wsrep_node_name="Node1" #####其他节点需要修改
第1个节点先启动 使用galera_new_cluster
其他节点使用 systemctl start mariadb
3.4 安装zabbix-server-mysql
为了将zabbix的数据文件导入mysql中

mysql -uroot -p

password

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

五、配置vip

因为负载均衡lvs的DR原理,每台数据库都必须配置vip地址,并不对外进行广播
#!/bin/bash
#description:start realserver
vip1=192.168.1.157
case $1 in
start)
echo "Start Realserver"
/sbin/ifconfig lo:0 $vip1 broadcast $vip1 netmask 255.255.255.255 up

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore    echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce    echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore    echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

;;

stop)
echo "Stop Realserver"
/sbin/ifconfig lo:0 down
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 (start | stop)"
exit 1
esac
最后运行shell脚本

常见故障

搭建galera cluster的时候设置sst为xtrabackup,启动node1报错。

[ERROR] WSREP: It may not be safe to bootstrap the cluster from this node. It was not the last one to leave the cluster and may not contain all the updates. To force cluster bootstrap with this node, edit the grastate.dat file manually and set safe_to_bootstrap to 1 .
解决方式:
grastate.dat file of the node you intend to use as the first node.
需要把该文件删除 重新启动即可。

转载于:https://blog.51cto.com/1194325/2384801

你可能感兴趣的文章
书摘—你不可不知的心理策略
查看>>
【博客话题】毕业——开始人生的艰苦历程
查看>>
Linux安装telnet
查看>>
sap scriptfom 多语言翻译
查看>>
黄聪:3分钟学会sessionStorage用法
查看>>
Entity Framework 全面教程详解(转)
查看>>
Windows上Python2.7安装Scrapy过程
查看>>
Chapter 3:Code Style in Django
查看>>
挖掘数据金矿 领军协同创新 曙光荣膺“2016大数据创新应用领袖企业”称号
查看>>
Fast通道获得Win10 Mobile Build 14977更新
查看>>
《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第3章3.6节识别操作系统...
查看>>
linux系统防火墙iptables命令规则及配置的示例
查看>>
10 个顶尖的 Linux 开源人工智能工具
查看>>
Firefox 跟踪保护技术将页面加载时间减少 44%
查看>>
聚合(根)、实体、值对象精炼思考总结
查看>>
java解析虾米音乐
查看>>
rails将类常量重构到数据库对应的表中之三
查看>>
mysql 多行合并函数
查看>>
【案例】RAID卡写策略改变引发的问题
查看>>
第四十八讲:tapestry 与 淘宝kissy editor编辑器带图片上传
查看>>