
安裝篇的最后一篇了,Zabbix 在 6.0 版本最大的變化就是提出了原生高可用功能,在之前的版本可能會通過其他第三方的方式來進行高可用,操作難度較大,本文將會對高可以展開講解。
首先要明確官方的高可用到底怎么回事?官方的高可用僅僅針對 Zabbix Server 部分,數據庫部分和前端部分需要自行采用各自領域的高可用解決方案,所以如果想實現完全高可用架構,還是需要具備一定的知識儲備。
默認情況下,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.7Zabbix 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 操作部分了,敬請期待。