简介

最近在通过keepalived软件实现高可用服务架构的时候,发现自己配置的vrrp_script监控脚本一直无法触发(nginx宕机时候,不切换备份服务器),后来自己手动执行脚本发现是没有问题的。因此断定问题发生的原因应该是在keepalived的配置文件中,经过仔细的检查后,发现问题的原因是由于少了一个空格所导致的


 改动前

下面这段代码检查了很多遍都没有发现问题,后来发现是由于chk_nginx 和 之间没有空格导致的,这可能与keepalived读取配置文件的算法有关

vrrp_script chk_nginx{
   script "/data/sh/check_nginx.sh"
   interval 2
   weight 2
}

改动后

vrrp_script chk_nginx {
   script "/data/sh/check_nginx.sh"
   interval 2
   weight 2
}

监控脚本

#!/bin/bash

# Look at nginx process is Runing or not
killall -0 nginx
if [[ $? -ne 0 ]]; then
	# try start nginx sever
	/usr/local/nginx/sbin/nginx
	sleep 2

	killall -0 nginx
	if [[ $? -ne 0 ]]; then
		/etc/init.d/keepalived stop
	fi
fi

 


实验结果

经过改动后,重启keepalived服务,故意杀掉主服务器(192.168.3.100)nginx进程,然后尝试访问VIP后,成功引导到了备份服务器(192.168.3.101)

keepalived配置问题
主机nginx进程正常

 

 

keepalived配置问题
主机异常

 

相关文章:

  • 2022-02-06
  • 2021-06-30
  • 2021-11-13
  • 2021-10-07
  • 2021-10-18
  • 2021-08-07
  • 2021-09-11
  • 2021-11-12
猜你喜欢
  • 2021-08-18
  • 2021-11-25
  • 2021-04-11
  • 2022-01-08
  • 2021-07-14
  • 2021-12-10
相关资源
相似解决方案