2.【详细到哭系列】keepalived配置,实现zabbix…
2020-03-20 16:06:35来源:博客园 阅读 ()
2.【详细到哭系列】keepalived配置,实现zabbix主备的切换
部署阶段及问题笔记:https://www.cnblogs.com/l-hh/category/1400262.html
两台机器都安装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时,执行的脚本
}
如下图:
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"
}
如下图:
注:主备中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
在服务器执行:
[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
注:该脚本作用为当主备发生切换或者回切时始终保持有VIP的机器有zabbix服务而另一台无zabbix服务,保证对外提供服务的只有一台机器。(若两台服务器都提供zabbix服务则每一次事件都会触发两次告警)
主备机分别重启keepalived服务并加入启动服务
[root@zabbix-master ~]# systemctl restart keepalived
[root@zabbix-master ~]# systemctl enable keepalived
检查所有相关服务,接下来就测试:
高可用测试
Zabbix-master查看VIP信息:
模拟zabbix-master的zabbix或者mariadb服务出现故障:
此时再Zabbix-slave查看网卡信息:
Zabbix-web页面也是可以正常访问的:
接下来我们模拟zabbix-master故障恢复,测试VIP是否回切:
注:到此zabbix高可用就已经实现了。
注:如果不想VIP不必要的主备切换,导致zabbix-master恢复后再次抢占VIP问题,自行了解"解决VIP抢占问题"。
原文链接:https://www.cnblogs.com/l-hh/p/12530882.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- keepalived 实现LVS负载均衡高可用集群(一) 2020-06-04
- 详细讲解docker容器和镜像的区别 2020-05-29
- 上古神器vim系列之移动三板斧 2020-05-28
- 上古神器vim系列之初探 2020-05-26
- 安装和使用ArchLiunx超详细教程 2020-05-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash