簡介
keepalived的作用是檢測伺服器的狀態,如果有一台web伺服器宕機,或工作出現故障,keepalived將檢測到,並將有故障的伺服器從系統中剔除,同時使用其他伺服器代替該伺服器的工作,當伺服器工作正常後keepalived自動將伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的伺服器。
工作原理
layer3,4&7工作在ip/tcp協議棧的ip層,tcp層,及應用層,原理分別如下:
layer3:keepalived使用layer3的方式工作式時,keepalived會定期向伺服器群中的伺服器傳送乙個icmp的資料報(既我們平時用的ping程式),如果發現某台服務的ip位址沒有啟用,keepalived便報告這台伺服器失效,並將它從伺服器群中剔除,這種情況的典型例子是某台伺服器被非法關機。layer3的方式是以伺服器的ip位址是否有效作為伺服器工作正常與否的標準。
layer4:如果您理解了layer3的方式,layer4就容易了。layer4主要以tcp埠的狀態來決定伺服器工作正常與否。如web server的服務埠一般是80,如果keepalived檢測到80埠沒有啟動,則keepalived將把這台伺服器從伺服器群中剔除。
layer7:layer7就是工作在具體的應用層了,比layer3,layer4要複雜一點,在網路上占用的頻寬也要大一些。keepalived將根據使用者的設定檢查伺服器程式的執行是否正常,如果與使用者的設定不相符,則keepalived將把伺服器從伺服器群中剔除。
系統環境
centos linux release 7.4.1708 (core)
keepalived版本:keepalived-1.4.0.tar.gz
操作步驟
2. 安裝keepalived安裝包
cd /usr/src
tar zxvf keepalived-1.4
.0.tar
.gz
(2) 將解壓好的安裝包轉移到/usr/local下並重命名為keepalived
mv keepalived-1.2
.24 /usr/local/keepalived
(3) 在編譯之前先安裝openssl,否則會報錯
yum -y install openssl-devel
(4) 編譯安裝keepalived
cd /usr/local/keepalived
./configure
3.修改配置檔案路徑
cp -a /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp -a /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp -a /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp -a /usr/local/sbin/keepalived /usr/sbin/
4.修改配置檔案
在主備配置檔案中,只需要修改vrrp_instance vi_1 中三個地方即可:state , priority, virtual_ipaddress
vi /etc/keepalived/keepalived.conf
主keepalived配置:
從keepalived配置:
5.啟動服務
注:這裡建議使用service 來啟動服務,而不是用systemctl,因為systemctl遇到許可權錯誤不提醒。本例需要給/etc/init.d/keepalived執行許可權,否則實驗會失敗
chmod +x /etc/init.d/keepalived
開啟服務
service keepalived start
常見問題
問題一:使用systemctl啟動服務沒報錯,但是實驗不成功
解決:/etc/init.d/keepalived 沒有執行許可權,執行以下語句給予許可權
chmod +x /etc/init.d/keepalived
問題二:openssl安裝不成功
解決:不要使用yum install openssl, 而要使用 yum install openssl-devel
LINUX PPP心跳檢測
arm linux開發 warewin 2g 3g無線傳輸 dtu 和路由器 筆記 使用ppp 層心跳檢測需在 pppd 程序的配置檔案中需配置以下兩個引數及其值 lcp echo failure 心跳失敗最大次數 lcp echo interval 心跳間隔時間 這兩個引數需配合使用,表示在乙個l...
Eureka心跳檢測
註冊中心的心跳機制有兩種形式 客戶端主動上報和客戶端被動響應。eureka屬於是主動上報型別的,client通過renew機制頻繁的向server傳送訊息,通知server它還活著,不要將其從服務列表中剔除,但是我們renew僅僅是監控client是否存活,並不會去檢測client依賴的服務是否存活...
NGINX心跳檢測
nginx心跳檢測 在30s內 fail timeout,預設值為10s nginx與中介軟體通訊失敗2次 max fails,預設值為1,設定為0則認為服務端一直可用 則認為中介軟體不可用 不可用中介軟體在30s內與nginx通訊成功2次,則認為中介軟體恢復。當upstream中的一台中介軟體響應...