iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
自我挑戰組

應用Zabbix 進行全方位監控系列 第 29

Zabbix High availability 設定

  • 分享至 

  • xImage
  •  

Zabbix High availability 設定

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

Zabbix High availability
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 高可用性需要搭配其它方案。

設備環境

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
---

https://ithelp.ithome.com.tw/upload/images/20231014/20163206yjrjVktIHY.png
https://ithelp.ithome.com.tw/upload/images/20231014/20163206SScHvY7wK7.png
更新所有Zabbix Server,並重新啟動。
另外確認Zabbix 前端網頁沒有定義ZBX_SERVER和ZBX_SERVER_PORT。
檔案位置/etc/zabbix/web/zabbix.conf.php
https://ithelp.ithome.com.tw/upload/images/20231014/20163206fw6z19aUto.png

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 中
https://ithelp.ithome.com.tw/upload/images/20231014/20163206OoybGRYgqp.png
可以看到High availability cluster、Fail-over delay: 1 minute及節點主機運作狀態。

在Active 節點上使用zabbix_server -R ha_status 確認。
https://ithelp.ithome.com.tw/upload/images/20231014/201632069oQJV0bQ7C.png

在Standby節點檢查zabbix_server.log
https://ithelp.ithome.com.tw/upload/images/20231014/20163206F4cLADGVdd.png

停用Active Server-u22-z6
https://ithelp.ithome.com.tw/upload/images/20231014/20163206lUkE4cEcYz.png

服務會自動移動到-dnode01
https://ithelp.ithome.com.tw/upload/images/20231014/20163206M5vA0IGuZj.png

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

內容為學習過程如有問題,請多多指教,謝謝。
文章也同步於個人網站


上一篇
Zabbix 使用 scheduled reports
下一篇
Zabbix系統效能調整
系列文
應用Zabbix 進行全方位監控30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言