构建高可用性、高性能和可扩展的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公众号:网工格物
原文
https://songxwn.com/Zabbix-Server-HA/
构建高可用性、高性能和可扩展的Zabbix Server架构的更多相关文章
- Amazon DynamoDB, 面向互联网应用的高性能、可扩展的NoSQL数据库
DynamoDB是一款全面托管的NoSQL数据库服务.客户能够很easy地使用DynamoDB的服务.同一时候享受到高性能,海量扩展性和数据的持久性保护. DynamoDB数据库是Amazon在201 ...
- php的源代码包构建一个空的php扩展。
下载一个php的源代码包,这里使用的是php 4.0.5版,解压后会看到php的根目录下会有README.EXT_SKEL这样一个文件,打开详细阅读了一下,发现了一个非常好用的工具,这个工具可以帮你构 ...
- PHP7 学习笔记(十六)Yaconf 一个高性能的配置管理扩展
鸟哥博客原文:Yaconf – 一个高性能的配置管理扩展 什么是yaconf ? 它使用单独的一个配置目录(在yaconf.directory指定), 不和代码在一起.它在PHP启动的时候, 处理所有 ...
- 这次我设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架
作者:冰河 博客地址:https://binghe001.github.io 大家好,我是冰河~~ 没错,这次冰河又要搞事情了,这次准备下手的是RPC框架项目.为什么要对RPC框架项目下手呢,因为在如 ...
- 如何利用MongoDB实现高性能,高可用的双活应用架构?
投资界有一句至理名言——“不要把鸡蛋放在同一个篮子里”.说的是投资需要分解风险,以免孤注一掷失败之后造成巨大的损失. 转发来自 如何利用MongoDB实现高性能,高可用的双活应用架构?http://d ...
- 自定义和扩展 SharePoint 2010 Server 功能区
了解构成 SharePoint 2010 服务器功能区的组件以及如何通过演练两个功能区自定义项方案来自定义功能区. 适用范围: Microsoft SharePoint Foundation 2010 ...
- Zabbix server(离线版)安装手册
由于zabbix server需要依赖MySQL及PHP的相关依赖,因此需要先安装好MySQL及PHP的相关依赖后方可安装zabbixserver. 安装MySQL 目录mysql下的rpm 1.新建 ...
- zabbix server is not running解决办法
正常安装完zabbix后,登录后zabbix监控报错zabbix server is not running: the information displayed may not be current ...
- [原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题
通过前面的文章,你已经可以快速地搭建一个报警系统,并能正常的收到报警邮件了.不过在很多企业级环境下,邮件发送服务器往往放在外网,而zabbix server放置在内网,在这种情况下,zabbix的报警 ...
- 基于LNMP的Zabbbix之Zabbix Server源码详细安装,但不给图
Zabbix Server安装 看到那里有错或者有什么问题的话,求指点 邮箱:losbyday@163.com 上一篇PHP源码安装参见基于LNMP的Zabbbix之PHP源码安装:https://i ...
随机推荐
- SqlServer使用总结
-- 新增主键,系统随机取名 ALTER TABLE "T_CS1" ADD PRIMARY KEY CLUSTERED ("ID1", "ID2&q ...
- Solution Set - Splay
A[洛谷P3369]维护集合,支持插入,删除,查询\(x\)的排名,查询排名\(x\)的数,查询前驱,查询后继. B[洛谷P3391]维护一个序列,支持区间翻转. C[洛谷P3380]维护数列,支持单 ...
- 【爬虫+情感判定+Top10高频词+词云图】"乌克兰"油管热评python舆情分析
目录 一.分析背景 二.整体思路 三.代码讲解 3.1 爬虫采集 3.2 情感判定 3.3 Top10高频词 3.4 词云图 四.得出结论 五.同步视频演示 六.附完整源码 一.分析背景 乌克兰局势这 ...
- git安装和git命令:全局设置用户名邮箱配置
在网上下载并安装git:https://git-scm.com/downloads在开始菜单里面找到 "Git --> Git Bash",如下 运行Git Bash: 如果 ...
- 超级详细的PostgreSQL创建数据库操作并附带图文
首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485195&idx=1 ...
- C语言:如何删除超链接
单独写出一个函数出来,基本思想就是用fscanf一个一个字符读取出来,(文本流只能用fscanf,不能用fgetc等用于二进制流的函数,不然会导致乱码)遇到<的时候就停止读取,先把之前存进cop ...
- golang 接口动态派发性能问题
测试代码 package main type Duck interface { Quack() } type Cat struct { Name string } //go:noinline func ...
- 面试题一《swift和oc的区别》
一.来源 这道题来自网上一篇文章<100家公司iOS面试题管理>,这份题目虽然题目质量不高,但是覆盖面比较全,有学习的价值 二.解析 1.swift 比 OC更年轻,这意味着 swift ...
- 一个问题:六位八段数码管(Verilog)
[基本信息] 需求:verilog程序,显示任意六位字符或数值,包含点号,且能够按需点亮位数.(学习篇) 芯片型号:cyclone Ⅳ EP4CE10F17C8 数码管属性:六位.八段 [最终成果图] ...
- 自定义动画 jquery的结束动画
<button name="width">改变宽</button> <button name="height"> ...