构建高可用性、高性能和可扩展的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健康检测。

bash 复制代码
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公众号:网工格物

原文

https://songxwn.com/Zabbix-Server-HA/