Zabbix High availability 設定
High availability (HA) 高可用性是應用在IT環境的重要項目,當服務出現故障時進行移轉,由其它設備接手服務,減少服務故障的影嚮。
Zabbix High availability
https://www.zabbix.com/documentation/6.0/en/manual/concepts/server/ha
https://www.zabbix.com/documentation/6.0/en/manual/concepts/server/ha
Zabbix 6.0 LTS 提供簡單設定的高可用性(HA)解決方案,提供Zabbix Server 軟體/硬體故障的額外保護,或減少因維護而導致的停機時間。
在Zabbix 高可用性模式中,多個 Zabbix Server會作為cluster 叢集中的節點。
當cluster 叢集中的有Zabbix Server 處於active時,其他 Server 處於 standby,當有狀況時接手服務。
Zabbix 高可用性只有針對Zabbix 相關服務,並不包含DB。DB 高可用性需要搭配其它方案。
當cluster 叢集中的有Zabbix Server 處於active時,其他 Server 處於 standby,當有狀況時接手服務。
Zabbix 高可用性只有針對Zabbix 相關服務,並不包含DB。DB 高可用性需要搭配其它方案。
設備環境
Zabbix Server 主機OS:Ubuntu Linux LTS 22.04,Hostname:u22-z6,IP:192.168.203.193,
安裝 Zabbix Server 6.0 LTS,MariaDB 10.6.12
OS:Debian Linux LTS 11,Hostname:dnode01,IP:192.168.203.171,
安裝 Zabbix Server 6.0 LTS
將新增第2台Zabbix Server主機dnode01,在原有u22-z6主機的DB服務開啟dnode01連線權限,來測試Zabbix High availability功能。
Zabbix Server服務安裝請參考,只需要安裝Zabbix 相關套件,不需要安裝DB。
DB設定指向u22-z6的IP:192.168.203.193
高可用性實現
設定Zabbix Server 作為叢集節點
在Zabbix Server設定檔設定兩個參數將 Zabbix Server作為叢集節點。HANodeName=節點名稱
NodeAddress=節點IP:Port
如果不指定HANodeName,則Zabbix Server將以獨立模式啟動。
Zabbix 前端網頁將使用 NodeAddress 參數連接到活動伺服器節點。
NodeAddress=節點IP:Port
如果不指定HANodeName,則Zabbix Server將以獨立模式啟動。
Zabbix 前端網頁將使用 NodeAddress 參數連接到活動伺服器節點。
# sudo nano /etc/zabbix/zabbix_server.conf
---
HANodeName=節點名稱
NodeAddress=節點IP:Port
---
---
HANodeName=節點名稱
NodeAddress=節點IP:Port
---
更新所有Zabbix Server,並重新啟動。
另外確認Zabbix 前端網頁沒有定義ZBX_SERVER和ZBX_SERVER_PORT。
另外確認Zabbix 前端網頁沒有定義ZBX_SERVER和ZBX_SERVER_PORT。
Zabbix Agent設定
Zabbix agent 2 在HA 叢集環境要依被動或主動模式設定。被動passive agent,所有節點名稱或IP必須寫在Server參數中,並以逗號分隔。
Server=u22-z6,dnode01,192.168.203.192,192.168.203.171
主動active agent,所有節點名稱或IP必須寫在ServerActive,並以分號分隔。
ServerActive=u22-z6:dnode01:192.168.203.192:192.168.203.171
請注意,對於主動檢查,節點與任何其他伺服器必須以逗號分隔,而節點本身必須以分號分隔。
Server=u22-z6,dnode01,192.168.203.192,192.168.203.171
主動active agent,所有節點名稱或IP必須寫在ServerActive,並以分號分隔。
ServerActive=u22-z6:dnode01:192.168.203.192:192.168.203.171
請注意,對於主動檢查,節點與任何其他伺服器必須以逗號分隔,而節點本身必須以分號分隔。
Zabbix Proxy設定
Zabbix Proxy在HA 叢集環境要依被動或主動模式設定。被動代理passive proxy,所有節點名稱或IP必須寫在Server參數中,並以逗號分隔。
Server=u22-z6,dnode01,192.168.203.192,192.168.203.171
主動代理active proxy,所有節點名稱或IP必須寫在Server參數中,並以分號分隔。
Server=u22-z6:dnode01:192.168.203.192:192.168.203.171
運作檢查
在Reports > System infornation 中可以看到High availability cluster、Fail-over delay: 1 minute及節點主機運作狀態。
在Active 節點上使用zabbix_server -R ha_status 確認。
在Standby節點檢查zabbix_server.log
停用Active Server-u22-z6
服務會自動移動到-dnode01
根據官網說明故障轉移到備用節點只要5秒
因為所有節點每 5 秒更新一次檢查狀態。
如果Active節點關閉並報告其狀態為"已停止",則另一個節點將在5 秒內接管。
如果Active節點關閉/變得不可用而無法更新其狀態,備用節點將等待Fail-over delay+ 5 秒來接管
Fail-over delay是可設定的,支援的範圍為 10 秒到 15 分鐘(預設為一分鐘)。
若要變更故障轉移延遲,可以在Active Server執行:
zabbix_server -R ha_set_failover_delay=5
經過測試了解Zabbix High availability 是方便可行的,後續將研究DB建置ha架構,將功能更完善。
因為所有節點每 5 秒更新一次檢查狀態。
如果Active節點關閉並報告其狀態為"已停止",則另一個節點將在5 秒內接管。
如果Active節點關閉/變得不可用而無法更新其狀態,備用節點將等待Fail-over delay+ 5 秒來接管
Fail-over delay是可設定的,支援的範圍為 10 秒到 15 分鐘(預設為一分鐘)。
若要變更故障轉移延遲,可以在Active Server執行:
zabbix_server -R ha_set_failover_delay=5
經過測試了解Zabbix High availability 是方便可行的,後續將研究DB建置ha架構,將功能更完善。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。