1 概述
在lvs的叢集設計中,存在兩個地方不可用的問題,director不可用 和rs不可用
a)director不可用
director不可用整個系統将不可用;spof single point of failure,單點故障導緻
解決方案:
通過keepalived heartbeat/corosync 實作高可用
b)某rs不可用時
當後端伺服器存在某一台rs不可用,director依然會排程請求至此rs,導緻請求不能被處理,服務失敗
解決方案:由director對各rs健康狀态進行檢查,失敗時禁用,成功時啟用
工具有keepalived heartbeat/corosync, ldirectord
同時,也可以通過腳本對後端rs監控狀态進行監控
檢測方式:
(a) 網絡層檢測,icmp
(b) 傳輸層檢測,端口探測
(c) 應用層檢測,請求某關鍵資源
rs全不可用時,可以通過back server或者sorryserver來提示使用者
本文将介紹ldirectord軟體和通過腳本的方式來實作對後端伺服器的監控
2 ldirectord
ldirectord:監控和控制lvs守護程序,可管理lvs規則,該軟體解決了ipvs不能監控後端伺服器的狀态的問題。
原理是根據配置檔案設定好的規則,去檢查伺服器端的應用是否正常。通過配置檔案配置服務後,隻要啟動該軟體就會按設定的規則進行配置和監測
那麼該軟體就會根據配置檔案的規則建立lvs叢集類型,添加rs伺服器,并進行監控,如果後端服務失敗,就移除對應的rs,如果rs服務恢複正常,會自動将rs加入排程計劃裡。
如後端監控http服務時,該軟體會通過抓取後端伺服器指定頁面的關鍵字來決定後端http服務是否正常運作。
包名:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm,該服務包在base源中沒有,要另外下載下傳,存在依賴性,下載下傳後用yum安裝,解決依賴性。
.軟體相關檔案:
ldirectord配置檔案示例
例子
#監控後端的http服務是否正常,通過抓取後端伺服器index.html頁面的關鍵字centos
3 自動化腳本
腳本使用需要注意事項
腳本中的vip,rip,rw(權重)監控端口vport和rport這些變量需要根據實際情況進行調整
腳本設定了循環監測,建議使用如下語句執行腳本
腳本預設是3s對後端的rs進行一次監測,該值可以根據實際情況調整,指令在腳本後sleep 3.調整數字3即可。
一鍵監控腳本如下
4 總結
本文通過介紹工具ldirectord 和 編寫了自己設計的腳本對後端的rs進行監控,但是監控的方式都是對後端rs進行輪詢通路,這種方式會對伺服器造成一定的壓力,是以,使用時要權衡。總體來說,如果要使用lvs進行排程,建議是要對後端rs進行監控,否則當rs異常時,将導緻服務不可用。