Zabbix 6 系列學習 10:原生高可用介紹及使用

2022-12-29 16:22:16 來源:51CTO博客

安裝篇的最后一篇了,Zabbix 在 6.0 版本最大的變化就是提出了原生高可用功能,在之前的版本可能會通過其他第三方的方式來進行高可用,操作難度較大,本文將會對高可以展開講解。

須知

首先要明確官方的高可用到底怎么回事?官方的高可用僅僅針對 Zabbix Server 部分,數據庫部分和前端部分需要自行采用各自領域的高可用解決方案,所以如果想實現完全高可用架構,還是需要具備一定的知識儲備。

啟用 HA

默認情況下,HA 是關閉的


(資料圖片僅供參考)

本文環境

主:zabbix-server-node01:192.168.181.183備:zabbix-server-node02:192.168.181.182數據庫:mysql:192.168.181.183前端:apache+php:192.168.181.183系統:almalinux 8.7

Zabbix Server 配置

vim /etc/zabbix/zabbix_server.conf

HA 部分的配置在配置文件的最下面:High availability cluster parameters 部分

該部分配置有兩個選項

HANodeName:故名思義,節點的名稱,如果該名稱為空,為 standalone模式,即為單機模式,但如果節點地址配置了,該字段為空,前端顯示為 IP 地址NodeAddress:節點的 IP,格式為
[:port]

修改完成后,需要重啟服務

systemctl restart zabbix-server

將字段填寫上

重啟服務后,就能看到 HA 管理器已經開啟了

查看前端,高可用集群已經啟用了

最新數據

安裝另外一臺 Zabbix Server

同樣關閉防火墻和Selinux,可以參考之前的文章,本文忽略。

安裝 Zabbix 源

rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm

安裝 Zabbix Server

dnf -y install zabbix-server zabbix-agent

修改 Zabbix server 配置文件

vim /etc/zabbix/zabbix_server.conf

修改數據庫的主機 IP

修改數據庫的密碼

修改 HA 部分的配置,填寫自身的信息

此時回出現無法連接數據庫,因為數據庫遠程登錄需要有權限。

mysql -uroot -pxiaoyu123create user zabbix@"192.168.181.132" identified by "xiaoyu123";grant all privileges on zabbix.* to zabbix@"192.168.181.132";

重啟 Zabbix server 服務

systemctl restart zabbix-server

就會出現下面情況,完成了加入節點,狀態為 standby

系統信息里

那么其實到這里了,HA 基本就可以實現了,那么是通過什么方式來確定的呢?通過抓包可以看到,實際上備機是通過查詢 Zabbix 數據庫的 ha_node表,來發現是否存在需要 HA 的關系,當然具體邏輯還得需要看源碼才知道,這里不展開深究。

模擬故障

zabbix-server-node01 停止 server 服務

systemctl stop zabbix-server

zabbix-server-node02

立即做了切換(5s內),不可用狀態根據切換時間來定(默認一分鐘)

日志

前端

此時出現了主 Server stoped 字樣

系統報告

那么高可用測試基本就沒問題了。

注意

1.在啟用了高可用雙方的配置是不會自動同步的,所以需要主備集群需要保持參數一致,而主的配置參數高于備機,切換雖然能成功,但是容易出現切換完成后備機出現不可用情況

2.關于被監控的主機。

snmp 不會受主備影響agent 部分需要重新配置
Server=zabbix-node-01,zabbix-node-02ServerActive=zabbix-node-01;zabbix-node-02

需要注意的是在 ServerActive的連接符是‘;’而不是‘,’,在配置文件里也有詳解

Server

ServerActive

如果不調整,當主機 down 掉了,會出現下面情況

Proxy 部分也需要注意

分兩種情況

主動模式
Server=zabbix-node-01;zabbix-node-02
被動模式
Server=zabbix-node-01,zabbix-node-02

不調整會出現無法接收數據

3.主動中斷服務是5s內立即切換,但如果非人為狀態,例如斷電/斷網/宕機,都根據 failover_delay 時間(默認一分鐘)切換,所以這一分鐘會出現斷圖,丟數據等情況

4.當加入節點后,想退出 HA 模式,此時無法主動刪除,需要用命令行移除備機,再取消掉主相關配置才可以。

附錄

HA 集群狀態

activestandbyunavailablestopped

切換細節

主節點和備節點每5秒更新一次上次訪問時間。每個備節點監控主節點的最后一次訪問時間。如果主節點的最后一次訪問時間超過了“故障轉移延遲”秒,備用節點將自己切換為主節點,并將“unavailable”狀態分配給先前的主節點。

命令行管理

修改切換時間(10s-15min)

zabbix_server -R ha_set_failover_delay=5m

查看 HA 狀態

zabbix_server -R ha_status

針對 HA 新增相關模板,在 Zabbix server health 模板里

寫在最后

當前原生高可用功能,僅完成比較初期的功能,如果現網監控環境較復雜,需要更改的功能,當前只支持1主多備,其次性能參數無法實現自動同步,需要手工同步;再就是無法提供虛擬 IP ,所以需要在 agent/proxy 修改相關參數才可使用,但至少看到了0從1的跨越,至于1.1,1.2...怎么完善就看 Zabbix 官方如何優化該功能了,后續就進入到 Zabbix 操作部分了,敬請期待。

標簽: 配置文件 訪問時間 加入節點

上一篇:環球通訊!明晰C語言中的真/假和0/1
下一篇:將全局命名空間和零信任策略與 VMware Tanzu Service Mesh 結合使用