zabbix切换MySQL,2.【详细到哭系列】keepalived配置,实现zabbix主备的切换

两台机器都安装keepalived

[root@zabbix-master ~]# yum install keepalived.x86_64 -y

keepalived配置

Zabbix-master配置文件:

! Configuration File for keepalived

global_defs {

router_id zabbix-master #router_id 机器标识

}

vrrp_script chk_zabbix {

script "/etc/keepalived/check.sh zabbix_server"

interval 1 #每1秒检测一次服务的运行状态

weight 30 #优先级变化幅度

fall 2 #尝试两次都成功才成功

rise 2 #尝试两次都失败才失败

}

vrrp_script chk_mysql {

script "/etc/keepalived/check.sh mysqld"

interval 1

weight 20

fall 2

rise 2

}

vrrp_instance VI_1 { #vrrp实例定义部分

state MASTER#设置lvs的状态,MASTER和BACKUP两种,必须大写

interface eth0 #设置对外服务的接口

virtual_router_id 100 #设置虚拟路由标示,这个标示是一个数字,同一个vrrp实例使用唯一标示

priority 100 #定义优先级,数字越大优先级越高,在一个vrrp——instance下,master的优先级必须大于backup

advert_int 1 #设定master与backup负载均衡器之间同步检查的时间间隔,单位是秒

authentication { #设置验证类型和密码

auth_type PASS#主要有PASS和AH两种

auth_pass 1111#验证密码,同一个vrrp_instance下MASTER和BACKUP密码必须相同

}

virtual_ipaddress { #设置虚拟ip地址,可以设置多个,每行一个

192.168.115.200

}

track_script {

chk_zabbix

}

track_script {

chk_mysql

}

notify_master "/etc/keepalived/zabbix.sh start" #指定当切换到master时,执行的脚本

notify_backup "/etc/keepalived/zabbix.sh stop" #指定当切换到backup时,执行的脚本

}

如下图:

86676ddcb2b18a7e996f654fd8bb74fd.png

Zabbix-slave配置文件:

! Configuration File for keepalived

global_defs {

router_id zabbix-slave

}

vrrp_script chk_zabbix {

script "/etc/keepalived/check.sh zabbix_server"

interval 1

weight 5

fall 2

rise 2

}

vrrp_script chk_mysql {

script "/etc/keepalived/check.sh mysqld"

interval 1

weight 45

fall 2

rise 2

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 100

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.115.200

}

track_script {

chk_zabbix

}

track_script {

chk_mysql

}

notify_master "/etc/keepalived/zabbix.sh start"

notify_backup "/etc/keepalived/zabbix.sh stop"

}

如下图:

c905e1edd5f9831d5ecf9ad96d21db4c.png

注:主备中chk_zabbix和chk_mysql的weight值。该设置目的是保证主机的zabbix或者mysql服务异常时keepalived能正常发生切换,并且当主机的zabbix和mysql服务重新正常启动时keepalived能够回切。

check.sh中的脚本(主备机相同):

注:该脚本为判断zabbix、mysql和http服务的状态,某个服务出现异常时将停止keepalived,VIP切换到zabbix-slave上。

#!/bin/bash

zabbix_server=`ps -C zabbix_server --no-header | wc -l`

mysqld=`ps -C mysqld --no-header | wc -l`

case $1 in

zabbix_server)

if [ $zabbix_server -gt 0 ];then

exit 0

else

exit 1

fi

;;

mysqld)

if [ $mysqld -gt 0 ];then

exit 0

else

exit 1

fi

;;

Esac

76c21420d7231cd09a84a97840d7e364.png

在服务器执行:

[root@zabbix-master keepalived]# chmod +x check.sh

Zabbix.sh脚本(主备机相同):

#!/bin/bash

case $1 in

start)

systemctl start zabbix-server

;;

stop)

systemctl stop zabbix-server

;;

Esac

f58dcace7f54092f46e14035616cd92d.png

注:该脚本作用为当主备发生切换或者回切时始终保持有VIP的机器有zabbix服务而另一台无zabbix服务,保证对外提供服务的只有一台机器。(若两台服务器都提供zabbix服务则每一次事件都会触发两次告警)

主备机分别重启keepalived服务并加入启动服务

[root@zabbix-master ~]# systemctl restart keepalived

[root@zabbix-master ~]# systemctl enable keepalived

检查所有相关服务,接下来就测试:

f70597021707a7117c069e3cd5c5e01d.png

高可用测试

Zabbix-master查看VIP信息:

69278b017f08ce05b1ae32bd523f075a.png

模拟zabbix-master的zabbix或者mariadb服务出现故障:

dd7b82cf9e3ebfa08404e5e3aef3df51.png

此时再Zabbix-slave查看网卡信息:

2c25af9c518ddbb13a5620b362547544.png

Zabbix-web页面也是可以正常访问的:

b1f0d42eb969eb40790c7f554a669d8c.png

接下来我们模拟zabbix-master故障恢复,测试VIP是否回切:

1a953e6f729755af2994b5402f1fc0d4.png

945dfcf493a5ac044570b7c09a5f2bfb.png

注:到此zabbix高可用就已经实现了。

注:如果不想VIP不必要的主备切换,导致zabbix-master恢复后再次抢占VIP问题,自行了解"解决VIP抢占问题"。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值