2023年10月14日 星期六

Zabbix High availability 設定

Zabbix High availability 設定

High availability (HA) 高可用性是應用在IT環境的重要項目,當服務出現故障時進行移轉,由其它設備接手服務,減少服務故障的影嚮。

Zabbix 6.0 LTS 提供簡單設定的高可用性(HA)解決方案,提供Zabbix Server 軟體/硬體故障的額外保護,或減少因維護而導致的停機時間。
在Zabbix 高可用性模式中,多個 Zabbix Server會作為cluster 叢集中的節點。
當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 參數連接到活動伺服器節點。

# sudo nano /etc/zabbix/zabbix_server.conf
---
HANodeName=節點名稱
NodeAddress=節點IP:Port
---
01-u22-z6 config
02-dnode01 config
更新所有Zabbix Server,並重新啟動。
另外確認Zabbix 前端網頁沒有定義ZBX_SERVER和ZBX_SERVER_PORT。
檔案位置/etc/zabbix/web/zabbix.conf.php
grep zabbix.conf

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
請注意,對於主動檢查,節點與任何其他伺服器必須以逗號分隔,而節點本身必須以分號分隔。

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 中
05-cluster status
可以看到High availability cluster、Fail-over delay: 1 minute及節點主機運作狀態。

在Active 節點上使用zabbix_server -R ha_status 確認。
03-u22-z6 status

在Standby節點檢查zabbix_server.log
04-dnode01 status

停用Active Server-u22-z6
u22-stop

服務會自動移動到-dnode01
dnode start

根據官網說明故障轉移到備用節點只要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架構,將功能更完善。


沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。