构建高可用性、高性能和可扩展的Zabbix Server架构
简介
本教程讲解了一下如何设计构建一个高性能、高可靠、高扩展的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公众号:网工格物