构建高可用性、高性能和可扩展的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 ...
随机推荐
- 【简说Python WEB】用户身份验证--Werkzeug
目录 [简说Python WEB]用户身份验证--Werkzeug Flask的security扩展 使用Werkzeug生成密码散列值 系统环境:Ubuntu 18.04.1 LTS Python使 ...
- 一键自动化博客发布工具,用过的人都说好(cnblogs篇)
cnblogs和其他的博客平台相比会比较复杂,需要设置的项目也比较多一些,弄懂了cnblogs的实现方式,那么你应该对selenium的整个框架使用已经烂熟于心了. 除了正常的标题,内容,摘要之外,c ...
- log4j的配置详解
参考文章:https://www.jianshu.com/p/ccafda45bcea 引入log4j: 在项目中单独使用log4j进行日志的输出: maven依赖: <dependency&g ...
- C# 实现Ping远程主机功能
C#实现Ping远程主机功能. 1.引用nuget包 Wesky.Net.OpenTools OpenTools是一个用于提高开发效率的开源工具库.该项目为个人开源项目,采用MIT开源协议,永不更改协 ...
- Splashtop 教育行业用户增加700%
由于新冠肺炎大流行继续限制对大学.学院和K-12学校的计算机实验室的物理访问,Splashtop的销售数据表明,越来越多的学校开始使用远程访问软件作为使用计算机实验室资源的替代方法. 在6月到8月 ...
- 阿里云sdk调用
slb调用 环境包安装 pip install alibabacloud_credentials --trusted-host mirrors.aliyun.com -i http://mirr ...
- webapi创建WCF WebService+WCF WebService远程服务调用
首先需要引入soapcore包 这个包提供了所需的类和soap终结点中间件. 引入这个这个包之后,我们需要定义提供的服务. 这里我写了一个用于查询省份面积的服务. 省份信息服务 /// <sum ...
- 利用Django实现文件上传
一.form表单的形式上传文件 1.路由 urlpatterns = [ path("upload/", views.UploadView.as_view(),) ] 2.视图 f ...
- ASP.NET Core SignalR 概述
什么是 SignalR? ASP.NET Core SignalR 是一个开放源代码库,可用于简化向应用添加实时 Web 功能. 实时 Web 功能使服务器端代码能够将内容推送到客户端. 适合 Sig ...
- Oracle优化神技之临时表
Oracle临时表在处理临时数据.会话数据隔离和复杂查询优化方面非常有用. 其底层逻辑是通过Oracle特殊的临时表来减少I/O操作和日志开销,提高了数据库性能和查询效率.开发者可以根据具体需求和场景 ...