2022年05月01日   码农之路   347 次浏览
我们都知道Keepalived是集群管理中保证高可用的一个服务软件,用来防止单点故障。 如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
其实在单节点环境下, Keepalived还可用作一个监控软件,当服务无响应时自动重启,下面用Nginx来做示例。
1、安装
1.1、yum install keepalived -y
1.2、报mysql签名错误:rpm –import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
2、配置文件
2.1、/etc/keepalived/keepalived.conf
! Configuration File for keepalived
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
interval 5 #检测时间间隔
weight -20 #如果条件成立的话,则权重 -20
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
state MASTER #来决定主从
interface ens160 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样
mcast_src_ip 192.168.2.230 #填写本机ip
priority 100 # 节点优先级,主要比从节点优先级高
nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
authentication {
auth_type PASS
auth_pass 1111
}
# 将 track_script 块加入 instance 配置块
track_script {
chk_nginx #执行 Nginx 监控的服务
}
virtual_ipaddress {
192.168.31.110 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
}
}
2.3、/etc/keepalived/nginx_check.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
systemctl restart keepalived
fi
fi
3、设置
#关闭防火墙
setenforce 0
# 启用开机启动
systemctl enable keepalived
# 确认开机启动已启用
systemctl is-enabled keepalived
# 启动
systemctl start keepalived
# 查看状态
systemctl status keepalived
# 重启
systemctl restart keepalived
# 日志
tail -22f /var/log/messages | grep Keepalived
4、常见错误
Q1: /etc/keepalived/nginx-check.sh exited due to signal 15
A1: 修改vrrp_script chk_nginx配置项中interval的时间必须大于脚本中设置的sleep时间,3秒不行就5秒
Q2: /etc/keepalived/nginx-check.sh exited with status 127或126
A2: 脚本错误,查看脚本中的命令如nginx所在位置
Q3: /etc/keepalived/nginx-check.sh exited with status 1
A3: SELinux是否禁用
>>> Hello World <<<
这篇内容是否帮助到你了呢?
如果你有任何疑问或有建议留给其他朋友,都可以给我留言。