keepalived配置問題

OrangeCat_發表於2018-10-02

簡介

最近在通過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)

主機nginx程式正常

 

 

主機異常

 

相關文章