要实现zabbix的高可用,我们就需要实现数据库的高可用
1.MySql高可用
修改my.cnf
Vim /etc/mysql/my.cnf
在文件中增加:
主从mysql的server_id要不同。
将bind-address = 127.0.0.1注释掉
参数解释:
binlog_format= mixed:指定mysql的binlog日志的格式,mixed是混合模式。
relay-log:开启中继日志功能
relay-log-index:中继日志清单
auto-increment-increment= 2:表示自增长字段每次递增的量,其默认值是1。它的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2。
auto-increment-offset= 2:用来设定数据库中自动增长的起点(即初始值),因为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突。
注:另外还可以在my.cnf配置文件中,添加“binlog_do_db=数据库名”配置项(可以添加多个)来指定要同步的数据库。如果配置了这个配置项,如果没添加在该配置项后面的数据库,则binlog不记录它的事件。
在master(10.10.30.233)上创建授权账户:
GRANT ALL PRIVILEGES ON . TO’root’@‘10.10.30.%’ IDENTIFIED BY ‘123456’;
flush privileges;
查看master上的binlog信息:
在backup(10.10.30.232)上将master设置为自己的主服务器并开启slave功能
查看backup的状态
将backup设置为master的主服务器,与上同理。
相关命令:
GRANT ALL PRIVILEGES ON . TO’root’@‘10.10.30.%’ IDENTIFIED BY ‘123456’;
flush privileges;
show master status;
changemasterto master_host=‘10.10.30.232’,master_user=‘zabbix’,master_password=‘123456’,master_log_file=‘mysql-bin.000003’,master_log_pos=42131;
start slave;
2.keepalived的安装配置
1、在mysql1和mysql2两台服务器上安装keepalived的几个依赖包
yum -y install kernel-devel openssl-devel popt-devel
注意:如不知道keepalived需要哪些依赖包,可到下载后的源码解压目录下查看INSTALL 文件内容,安装需要的依赖包,源码安装任何一个软件都要养成查看源码包文档的习惯,比如INSTALL,README,doc等文档,可以获得很多有用的信息。
2、在两台mysql上都开始解压缩编译安装keepalived
tar -zxf keepalived-1.2.20.tar.gz -C /usr/src/
cd /usr/src/keepalived-1.2.20/
./ configure --prefix=/
make && make install
3、执行make install操作之后,会自动生成/etc/init.d/keepalived脚本文件,但还需要手动添加为系统服务,这样就可以使用service、chkconfig工具来对keepalived服务程序进行管理了。
cd /etc/init.d/
chkconfig --add keepalived
chkconfig keepalived on
4、修改keepalived的配置文件
! Configuration File for keepalived #!表示注释
global_defs {
router_id mysql-1 #表示运行keepalived服务器的一个标识
}
vrrp_instance VI_1 {
state BACKUP #指定该机的角色,主还是从
interface eno16777736 #指定HA监控网络的接口
virtual_router_id 51 #虚拟路由标识,这个标识是一个数字(取值在0-255之间,用来区分多个instance的VRRP组播),同一个vrrp实例使用唯一的标识,确保和master2相同,同网内不同集群此项不同,否则会发生冲突。
priority 100 #用来选举master的,其范围为0-255之间,一般master设置为100,backup设置为50
advert_int 1 #发送vrrp包的时间间隔,即多久进行一次选举
nopreempt #不抢占,允许priority低的节点作为master
authentication { #认证区域,认证类型为PASS和HA,推荐使用PASS
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #指定vip地址
10.10.30.231
}
}
virtual_server 10.10.30.231 3306 { #设置虚拟服务器,需要指定虚拟ip地址以及服务端口,ip与端口空格隔开
delay_loop 2 #设置运行检查时间,单位是秒
lb_algo rr #设置后端调度算法。这里设置为rr,即轮询算法
lb_kind DR #设置LVS实现负载均衡的机制
persistence_timeout 60 #会话保持时间,单位是秒。这个选项对动态网页是非常有用的,为集群系统的session共享提供了一个非常好的解决办法。有了这个会话保持功能,用户的请求会一直发送到某个服务节点直到超时
protocol TCP #指定转发协议类型
real_server 10.10.30.232 3306 { 配置服务节点,需要指定ip和端口,空格隔开
weight 3 #配置服务节点的权值,权值大小用数字表示,数字越大权值越高
notify_down /etc/keepalived/bin/mysql.sh #检测到mysql服务down之后的操作
TCP_CHECK {
connect_timeout 3 #重新连接超时时间
nb_get_retry 3 #重连次数
delay_before_retry 3 #重新连接间隔时间
connect_port 3306 #健康检查端口
}
}
}
同样的也需要修改第二台服务器的keepalived配置文件,同上;
6.启动keepalived服务即可
3.安装zabbix
参考该博文:https://www.cnblogs.com/sunbeidan/p/4940147.html
这里注意设置zabbix—server配置文件时,将里面的ip设置为vip地址即可