keepalived实现zabbix的高可用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34355232/article/details/88649285

要实现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地址即可

参考博文链接:https://blog.51cto.com/zpf666/1913822

猜你喜欢

转载自blog.csdn.net/qq_34355232/article/details/88649285