对于大部分监控项而言,随着时间流逝,监控数据会快速地脱离Zabbix server的使用范围,进入冷数据区。虽然冷数据脱离了Zabbix server的使用范围,但是Zabbix仍然不能对冷数据进行离线化,因为前端UI和网络API需要访问这些冷数据,这些访问一般***于少量监控项的读取。从Zabbix server的角度来说,对于任一特定监控项,数据的热区和冷区分界线是固定的,并且热区的数据量相对于冷数据要小得多。如果使用mysql来存储监控数据,由于索引的存在,数据的写入性能会随着存储规模的增加而降低,查询性能也是一样。因此,控制数据规模成为解决数据库访问性能的关键。如果将热数据和冷数据分开存储,并且在需要时让数据在两者之间进行流动,则对于Zabbix server而言,可以**降低数据规模。如果进一步考虑如何实现热数据表的**小化,就需要建立一种动态机制,每次修改触发器表达式后按照触发器的数据需求量在冷热数据之间进行双向调整。zabbix通过一系列的UI/UX优化、新监控项和配置选项以及中大型环境部署的性能优化。什么zabbix互惠互利
在随后的数据预处理阶段,性主要体现在监控项层面,每个监控值的预处理过程不会依赖于其他监控项,而在同一监控项内部则可能会依赖于前一个值以计算变化率。在的数据存储和触发器运算阶段,性主要体现在host层面,虽然触发器表达式允许跨host使用监控项,但是在实际应用中,使用多的还是在同一个host内部的监控项之间构造表达式,所以触发器表达式的计算只需要使用同一host内部的监控数据。上述的性是逻辑意义上的,而在数据处理的次序方面还存在一种限制性约束,即同一监控项的多次采集值构成一个时间序列,意味着这些值在时间维度上具有先后关系,那么Zabbix在预处理阶段和触发器表达式运算阶段至少需要保证同一监控项的值严格按照时间的先后顺序进行处理。品质zabbix口碑推荐监控工具Prometheus和Zabbix哪种更容易掌握二者有何区别?
假设有一个监控系统存在100万个监控项,30万个触发器,nvps值为一万,意味着每秒需要处理1万个值,而每处理1个值都需要从100万个监控项中找到所对应的item状态信息。同样地,在计算触发器时也需要从大量触发器中查找目标。对于这一查找问题,Zabbix通过哈希表结构来解决,也就是,以itemid、hostid、triggerid等作为键,构建哈希表来组织这些需要频繁查找的数据。哈希表结构存在于配置缓存、历史缓存、历史索引缓存、值缓存valuecache和趋势缓存中,配置信息缓存中的哈希表主要是解决刚才说的频繁查找大规模元数据的问题。历史缓存和历史索引缓存中也使用了哈希表,当有大量的监控数据来不及处理时,可以先放到历史缓存的哈希表中,等待historysyncer进程处理。由于使用了哈希表,即使有大量监控项的数据进入缓存,historysyncer进程仍然可以以固定的时间复杂度来查找这些数据。
既然进程之间是流水线式的协作,我们看一下监控数据在三类进程之间如何进行输入和输出。首先,Trapper和poller进程接收到的数据按照来源分为两种,一种是来自proxy端,一种是来自agent端。由于来自proxy端的数据已经由proxy完成了预处理,所以,这部分数据会直接输出到共享内存,供historysyncer进程使用。对于来自agent端的数据,无论其监控项是否设置了预处理步骤,都会通过unix域套接字传递给预处理进程。预处理进程接收到数据以后,如果发现该数据并没有设置预处理步骤,则直接写入共享内存,供historysyncer进程使用;如果发现需要预处理,则在预处理完毕以后再写入共享内存,供historysyncer进程使用。对于historysyncer进程来说,其输入数据来自共享内存,它会批量地从共享内存读取数据进行处理,具体处理过程是先写入数据库,然后计算触发器表达式生成event。Zabbix集群是如何工作的?
作为监控系统,Zabbix所面临的挑战之一在于需要从大量的监控目标接收数据,这一方面意味着需要连接非常多的监控目标,另一方面意味着监控数据的流量(访问量)比较大。影响这种通信效率的一个重要因素是通信协议,考虑到单个消息中包含的数据量不同,在数据接收阶段,Zabbix采用了两种不同的通信协议。Trapper进程要求在每个消息中包含较大量的监控数据,因此Zabbix采用基于TCP协议和JSON格式的自定义协议进行通信。而对于poller进程,当poller进程向agent请求单个监控值时,Zabbix采用简化的文本协议进行通信,以提高通信效率。对于其他监视类型,如SNMP–确保您的端点接受来自所有Zabbix Server节点的连接;国产zabbix项目
Zabbix 与 Prometheus 到底该如何选择?什么zabbix互惠互利
监控数据的存储是由historysyncer进程负责写入数据库,historysyncer进程应对大流量数据的方式是,一方面通过批量插入来提高写库的效率,另一方面通过多进程的方式来扩展数据处理能力。在写库过程中,历史数据写入history表,即使数据变为冷数据也需要留在history表中供前端UI访问。趋势数据写入trends表,相较于历史数据,趋势数据的写库负载要低的多,是因为对于每个监控项来说,平均每小时只需要写库一次,其他时间只需要更新趋势缓存,不需要写库。在historysyncer进程的触发器计算阶段,主要访问值缓存,但是如果值缓存不能命中则需要查询history表,这种情况下就需要使用history表索引了。考虑索引对insert操作的影响,索引在提高查询速度的同时也降低了写入性能。触发器计算之后生成的event信息也需要写入数据库,这些信息存储在events表、problem、escalation等表中。因此,这些表的数据增长率取决于Zabbix生成的事件的数量,当事件数量陡增时,这些表的写入压力也会随之增加。在数据存储方面主要体现了热数据和冷数据的转换过程以及数据规模对读写性能的影响。什么zabbix互惠互利
上海观纵科技有限公司成立于2022-11-14,同时启动了以webfunny,walkingfunny,argus为主的webfunny前端监控,webfunny前端埋点,全链路应用性能监控,Argus-IT运维监控产业布局。观纵科技经营业绩遍布国内诸多地区地区,业务布局涵盖webfunny前端监控,webfunny前端埋点,全链路应用性能监控,Argus-IT运维监控等板块。我们强化内部资源整合与业务协同,致力于webfunny前端监控,webfunny前端埋点,全链路应用性能监控,Argus-IT运维监控等实现一体化,建立了成熟的webfunny前端监控,webfunny前端埋点,全链路应用性能监控,Argus-IT运维监控运营及风险管理体系,累积了丰富的传媒、广电行业管理经验,拥有一大批专业人才。上海观纵科技有限公司业务范围涉及一般项目:技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广;软件开发;人工智能基础软件开发;人工智能应用软件开发;数据处理服务;信息技术咨询服务;信息系统集成服务:信息系统运行维护服务;计算机系统服务;软件销售;计算机软硬件及辅助设备批发;计算机软硬件及辅助设备零售;电子产品销售;通信设备销售;通讯设备销售;咨询策划服务;市场调查(不含涉外调查);广告制作;广告发布;广告设计、代理;会议及展览服务;货物进出口。(除依法须经批准的项目外,凭营业执照依法自主开展经营活动) 许可项目:建筑智能化系统设计;建设工程施工;网络文化经营;互联网信息服务。(依法须经批准的项目,经相关部门批准后方可开展经营活动,具体经营项目以相关部门批准文件或许可证件为准)等多个环节,在国内传媒、广电行业拥有综合优势。在webfunny前端监控,webfunny前端埋点,全链路应用性能监控,Argus-IT运维监控等领域完成了众多可靠项目。