四行shell腳本實現Zabbix_server 的高可用

 

高可用:保障業務出現故障的時候,進行快速的切換,從而不影響到業務的正常運轉。shell

VIP(虛擬IP):高可用技術離不開VIP,高可用的原理其實就是用戶經過VIP訪問業務,而VIP會映射到對應的服務器IP。數據庫

 

 默認狀況下,客戶端經過192.168.74.150的IP映射到192.168.74.149這臺主zabbix的服務,若是主zabbix_server服務器關機了,那麼客戶端繼續使用192.168.74.150的IP就會映射到備用zabbix_server(192.168.74.148)這臺服務。服務器

準備內容:

安裝兩臺zabbix_server,一臺數據庫服務器(主zabbix_server和備zabbix_server的數據都保存在這臺數據庫上)3d

備:zabbix_server:192.168.74.148rest

主:zabbix_server:192.168.74.149server

一臺數據庫服務器:192.168.74.128blog

本實驗都內容須要利用邏輯網卡做爲VIP(192.168.74.150)crontab

第一步:在兩臺zabbix_server服務器上建立邏輯網卡,即VIP兩臺zabbix_server服務器進入/etc/sysconfig/network-script目錄

cd /etc/sysconfig/network-scriptsip

 拷貝當前服務器網卡文件,個人網卡是ifcfg-ens33虛擬機

cp ifcfg-ens33 ifcfg-ens33:0

編輯ifcfg-ens33:0 文件(兩臺zabbix_server都ifcfg-ens33:0文件中,ip都改成192.168.74.150做爲虛擬ip)

如今任意一臺zabbix_server上啓動ifcfg-ens33:0,確認網卡是否能夠啓動。

注意:不能夠同時在兩臺zabbix_server啓用ifcfg-ens33:0,不然會出現IP衝突。

邏輯網卡啓動命令是ifup 網卡名,使用ifup命令,只重啓新增都網卡便可,作好不要用systemctl network restart命令重啓所有網卡,一旦這條命令致使網卡啓動失敗,將會致使沒法遠程服務器。

ifup ifcfg-ens33:0

 

 

第二步:驗證是否能夠經過vip(192.168.74.150),訪問到主zabbix_server或者備zabbix_server的ip

在window主機上安裝agent,把agent配置文件的server_ip指向192.168.74.150這個虛擬IP,確認是否能夠經過192.168.74.150映射到192.168.74.149這個zabbix_server服務

此時已經能夠經過虛擬IP(192.168.74.150)訪問到192.168.74.149的zabbix_server。

但同時出現了一個問題,如圖,全部的監控主機ZBX出現爆紅

爲了解決上面的問題,須要修改全部監控主機的zabbix_agentd.conf的server ip都指向192.168.74.150

PS:修改完agent的配置,必定要重啓zabbix_agent

最重要的一步,修改兩臺zabbix_server.conf裏面的參數Source指定爲虛擬IP192.168.74.150,不然界面的ZBX會出現爆紅

重啓zabbix_server:Systemctl restart zabbix_server

以上配置完成後,界面的監控主機將恢復正常

主機的數據也正常

下面開始編寫shell腳本,實現主zabbix_server(192.168.74.149)服務器掛掉後,仍然能夠經過192.168.74.150繼續訪問備用zabbix_server(192.168.74.148)

在192.168.74.149和192.168.74.148兩臺服務器上編寫腳本check_alive .sh

並在兩臺服務器上crontab -e的定時任務中加入這個腳本,執行這個腳本的時間由用戶自定義。本人暫時以60s一次執行這個監測腳本。PS:給這個腳本可執行的權限:chmod o+x 755 check_alive.sh

之因此設置60s執行一次腳本,是爲了待會演示關閉192.168.74.149這臺虛擬機,而後界面會沒法訪問。接着等待60s,備用zabbix_server的192.168.74.148就會啓用vip,界面就能夠繼續訪問zabbix_server。正常來講,設置3-10s比較合適,這樣才能作到快速切換。

PS:必定要用絕對路徑,不然可能會報錯

最終效果演示

關閉主zabbix_server(192.168.74.149虛擬機),此時vip在 主zabbix_server上

關閉主zabbix_server(192.168.74.149)後,備zabbix_server就沒法ping通 vip:192.168.74.150了

等待60s,vip(192.168.74.150)會出如今備用zabbix_server(192.168.74.148)

vip切換成功,刷新界面看一下可否訪問zabbix_server

界面訪問正常

主zabbix_server關機了,全部沒法獲取數據。

本實例能夠確保zabbix_server服務進行高可用,但有一個缺點,就是兩個zabbix_zabbix_server服務使用可是同一個數據庫服務器,若是這個數據庫服務器掛掉,一樣會沒法獲取數據,因此最好也作一下數據庫的高可用。

相關文章
相關標籤/搜索