Installation et configuration de keepalived
1. Téléchargez le package d'installation
Adresse de téléchargement : adresse de téléchargement Keepalived
2. Téléchargez le package d'installation keepalived sur le serveur
3. Décompressez le package compressé
tar -zxvf keepalived-2.2.2.tar.gz
4.Installation
cd keepalived-2.2.2
./configure --prefix=/usr/local/keepalived
Erreur signalée :
résoudre:
yum -y install libnl libnl-devel
Une erreur est à nouveau signalée. Autorisations insuffisantes. Basculez vers l’utilisateur root et exécutez à nouveau.
Une fois terminé, revenez à un utilisateur normal et réinstallez
su yindy
./configure --prefix=/usr/local/keepalived
5. Vérification de la compilation
make && make install
Erreur :
Solution : Changer d'utilisateur et exécuter à nouveau
su root
make && make install
6. Créez un lien vers le même fichier que keepalived en utilisant ln -s et exécutez la commande suivante
ln -s /yindy/keepalived-2.2.2/keepalived/etc/init.d/keepalived /etc/rc.d/init.d
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/
Erreur : Aucune autorisation, passez à l'utilisateur root et exécutez à nouveau
su root
7. Créez un fichier de configuration sous le fichier /usr/local/keepalived/
cd /usr/local/keepalived/
touch keepalived.conf
8. Afficher les informations de la carte réseau
ip addr
8. Modifier keepalived.conf
maître:
global_defs {
router_id LVS_MASTER #名称标记为master,名字随便取
vrrp_gna_interval 0
}
#加入周期性检测nginx服务脚本的相关配置
vrrp_script check_nginx{
script "/etc/keepalived/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动
interval 2 #(检测脚本执行的间隔,单位是秒)
}
vrrp_instance VI_1 {
state MASTER #指定当前节点为master节点,只能有一个master,其余只能是backup
interface ens33 #绑定此虚拟路由使用的网卡的名称,使用ifconfig或者ip addr查看
virtual_router_id 99 #指定虚拟路由id,虚拟路由的唯一标识,范围是0-255,mater和backup节点需要指定一样的,相同id为一组
priority 200 #指定当前结点的优先级,master节点要大于backup节点。
advert_int 1 #指定发送VRRP通告的间隔,单位是秒
virtual_ipaddress {
192.168.199.130 #指定虚拟ip,自己定义的虚拟ip
}
#添加跟踪(执行脚本)
track_script{
check_nginx
}
}
sauvegarde:
global_defs {
router_id LVS_BACKUP #名称标记为BACKUP,名字随便取
vrrp_gna_interval 0
}
#加入周期性检测nginx服务脚本的相关配置
vrrp_script check_nginx{
script "/etc/keepalived/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动
interval 2 #(检测脚本执行的间隔,单位是秒)
}
vrrp_instance VI_1 {
state BACKUP #指定当前节点为master节点,只能有一个master,其余只能是backup
interface ens33 #绑定此虚拟路由使用的网卡的名称,使用ifconfig或者ip addr查看
virtual_router_id 99 #指定虚拟路由id,虚拟路由的唯一标识,范围是0-255,mater和backup节点需要指定一样的,相同id为一组
priority 199 #指定当前结点的优先级,master节点要大于backup节点。
advert_int 1 #指定发送VRRP通告的间隔,单位是秒
virtual_ipaddress {
192.168.199.130 #指定虚拟ip,自己定义的虚拟ip
}
#添加跟踪(执行脚本)
track_script{
check_nginx
}
}
Exécuter une commande
ln -s /usr/local/keepalived/keepalived.conf /etc/keepalived/
9. Modifiez le script shell du service de surveillance check_nginx.sh et téléchargez-le sur le chemin d'exécution /etc/keepalived/ configuré dans keepalived.conf
#!/bin/bash
#检测nginx是否启动了
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then #如果nginx没有启动就启动nginx
/root/ydy/nginx/sbin/nginx #重启nginx,也可以使直接监听应用服务
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重启失败,则停掉keepalived服务,进行VIP转移
killall keepalived
fi
fi
10. Tuez le processus nginx, puis exécutez le script pour vérifier l'exactitude du script
ps -ef | grep nginx
pkill -9 nginx
ps -ef | grep nginx
sh check_nginx.sh
ps -ef | grep nginx
11. Vérifiez l'état de keepalived
service keepalived status
## systemctl keepalived status
12. Démarrez keepalived, puis vérifiez
service keepalived start
service keepalived status
ip a
12. Vérifiez si le script d'écoute peut redémarrer le service
ps -ef | grep nginx
pkill -9 nginx
ps -ef | grep nginx
13. Vérifiez l'appel IP virtuel Keepalived
Entrez http://virtual ip:port dans le navigateur et vérifiez si la page s'affiche normalement.
14. Vérifier la haute disponibilité de keepalived
Arrêtez keepalived sur l'un des serveurs
service keepalived stop
## systemctl keepalived stop
Saisissez à nouveau http://virtual ip:port dans le navigateur pour vérifier si la page s'affiche normalement.