簡介
本教程講解了一下如何設計構建一個高性能、高可靠、高擴展的Zabbix 監控集群。
架構圖
架構圖PDF下載: https://songxwn.com/file/Zabbix_HA.pdf
Pigsty 時序數據庫集群
Zabbix Server 和 Grafana的數據都是存放在數據庫的,而Zabbix性能很大程度取決于數據庫。所以要搭建數據庫集群,提供性能和冗余性。(數據庫最好使用SSD,最好是NVME SSD)
Pigsty 集群搭建教程 https://songxwn.com/Pigsty-PG-RDS/
時序數據庫 TimescaleDB
TimescaleDB,這是一種基于PostgreSQL的數據庫解決方案,可自動將數據分為基于時間的塊,以支持更快的大規模的監控性能。能以更好的性能去刪除過期的監控數據和進行實時壓縮數據,可節省空間。
Zabbix Server HA
Zabbix 從6.0 開始支持原生的HA故障切換,HA實現需要主備數據連接到同一個數據庫實例。(Pigsty PG集群)
HA通過數據庫心跳實現,若主Zabbix Server在指定時間內不再寫入心跳,則備會自動切換并開始工作。(當Zabbix Server處于備狀態時候不會有任何操作。)
Zabbix Web 前端
Zabbix前端是直連數據庫,是基于PHP的無狀態應用。所以多實例可以同時使用。所以多實例+數據庫集群就可以實現高可用。
然后通過Nginx + Keeplive可以實現故障遷移和負載均衡。
Zabbix Server安裝教程:https://songxwn.com/zabbix-7-install-TimescaleDB/
Zabbix Proxy Group
Zabbix 從 7.0開始支持 Proxy的故障轉移和自動負載均衡,在一個Zabbix Proxy Group 里面添加多個Zabbix Proxy可實現高性能、高可用、高擴展性。
Grafana Server HA
Grafana 主要是來展示Zabbix數據的,也是無狀態的。所以通過多實例+數據庫集群+Nginx + Keeplive可以實現故障遷移和負載均衡。
Uptime Kuma 全局運維系統可用性監控
Zabbix本身就是一個監控,但監者不能自監。
Uptime kuma是一個簡單輕量的監控軟件,用于PostgreSQL集群可用性、Zabbix Server TCP、Zabbix Web、Grafana Web監控。
還支持被動監控、讓Zabbix 持續訪問Kuma 的http接口進行監控Zabbix健康檢測。
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
參數調優
Linux 系統、Zabbix Server 、Zabbix Proxy 、Pigsty 都需要根據現有硬件進行調整才能穩定高效的允許。此部分會放在之后的實戰方面寫。
內核調優:https://songxwn.com/Linux-kernel-optimize/
技術交流群
發送郵件到 ?? me@songxwn.com
或者關注WX公眾號:網工格物