原文:http://blog.chinaunix.net/uid-9411004-id-4139807.html

或许读者还记得,我们在介绍如何创建一个监控项目时,我们介绍过在“配置项目”表单页面上有两个表单项“保留历史数据(天)”和“保留趋势数据(天)”,并且当时我们给出提示,建议为减轻数据库的压力,在配置监控项目时,应尽可能的在“保留历史数据(天)”表单项里输入较小数据。比如说将这个表单项的输入值调整成7天或半个月。那么,在Zabbix系统中为何有“历史数据”和“趋势数据”两种数据呢?它们又都什么类型的数据呢?以及这两种数据有什么联系和区别吗?下面,我们就针这些问题谈谈Zabbix系统中的“历史数据”和“趋势数据”。

历史数据和趋势数据是Zabbix系统中存储所采集的监控项目数据的两种存储方式。它们既有区别又有联系。所谓历史数据就是指,Zabbix系统针对每个监控项目在每次采集时所收集到的数据,这个数据保存Zabbix系统数据库的历史表中。因为是每次所采集到的数据都保存在历史表中,所以如果监控项目的更新间隔越小,则在固定时间内所保存到历史表中的数据就越多。如果每个监控项目的更新间隔是30秒的话,则两个小时,该监控项目在Zabbix数据库的历史表中就会产生240条记录,一天就会产生2880条记录。或许你会认为,对于MySQL数据库来说,2880条记录几乎可以忽略不计。是的,如果我们的Zabbix系统只监控一台被监控主机,且这台被监控主机只有一个被监控项目,那么每天产生2880条记录确实不值得一提的。但是,当我们监控系统所监控的项目比较多时,则这个数据量还是非常大的。比如说,如果我们监控系统监控1000个监控项目,且每个监控项目的更新间隔都是30秒,则每天历史表中就会产生2880*1000=2880000条记录,也即近300万条记录。而1000个监控项目可以监控多少主机呢?我们以48口的交换机为例,单监控每台交换机的每个端口的流量,则一台48口的交换机就有96个监控项目。所以,如果我们仅监控这样的48口的交换机,1000个监控项目只差不多只够监控10台这样交换机。由此可见,如果我们所监控主机的数量稍等多一点,或者更确切的来说,我们所监控的项目稍微多点,则Zabbix系统每天在其数据库中所产生的记录是非常大的。因此,我们建议,如非必须的, 我们在配置监控项目时,应尽量减小历史数据的保留天数,以免给数据库系统带来很大的压力。

而趋势数据则不同,对于相同的更新间隔,系统所产生的趋势数据的数量远远没有历史数据那么庞大。对同一个监控项目,之所以趋势数据的数据量要远远小于历史数据的数据量,是由趋势数据的取值方式决定的。趋势数据取值方式是,它取对应监控项目的历史数据在一个小时内的平均值、最大值、最小值以及这一个小时内该监控项目所采集到的数据的个数。因此,不管一个监控项目的更新间隔是多少,它所对应的趋势数据在数据库中的记录都只有一条。更新间隔越小,仅可能导致数据个数增大,而不会影响该监控项目在趋势表里的记录条数的。由此,或许你觉得趋势数据很不准确,你还是愿意保留更长时间的历史数据,以便查看较长时间的数据图。其实不是这样的,因为在Zabbix系统数据库的趋势表里不但保留一个小时内历史数据的最大值、最小值和平均值,而还保存这一个小时内所采集到的数据个数。因此,在要求并不是很高的场合,使用趋势数据绘出的监控项目的数据图的走势与用历史数据绘出的数据图的走势差别不会很大的。

不是历史数据还是趋势数据,都会周期性被Zabbix服务器端一种称之为“主妇(housekeeper)”进程进行清理,它会周期性的删除过期的历史数据和趋势数据。也正是因为这个进程的存在,才会使Zabbix系统数据的数据量不会一直的彭胀下去。而实际上,如果我们在保持Zabbix系统的被监控主机和被监控项目不变,且不更改监控项目的更新间隔的情况下,Zabbix系统的数据库的数据量会在增长到一定的数据量后不会再增长,而是基本维护在这个数据量上不变。“主妇”进程清理历史数据和趋势数据的频率可以在Zabbix服务器端组件(或服务器代理组件)的配置文件zabbix_server.conf中进行配置,它的配置项是HousekeepingFrequency。

注意                                                              1、如果监控项目的“保留历史数据(天)”配置项被设置成0时,则数据库历史表中仅保留该监控项目所采集的最后一条数据,其它历史数据将数据将不会被会保留。而且,引用该监控项目的触发器也只能使用该项目所采集的最后数据。因此,此时如果在触发器里引用该项目时使用max、avg、min等函数据时将没有意义。                                                                             2、如果监控项目的“保留趋势数据(天)”配置项被设置成0时,则该项目在系统数据库的趋势表里将不保留任何数据。

Zabbix系统中的历史数据和趋势数据的更多相关文章

  1. 使用API接口在zabbix系统中登陆、创建、删除agent

    一.API的介绍 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力 ...

  2. 金蝶K3,名称或代码在系统中已被使用,由于数据移动,未能继续以NOLOCK方式扫描

    使用金蝶K3时出现:名称或代码在系统中已被使用:错误代码:3604(E14H)source:Microsoft OLE DB provider for SQL SERVERDetail:由于数据移动, ...

  3. Zabbix系统数据采集方法总结

    转:http://www.blog.chinaunix.net/uid-9411004-id-4115731.html 老文章,直接拿来用了,官网也有最新分类,没高兴翻译 在Zabbix系统中有多达十 ...

  4. 【转】Spark Streaming 实时计算在甜橙金融监控系统中的应用及优化

    系统架构介绍 整个实时监控系统的架构是先由 Flume 收集服务器产生的日志 Log 和前端埋点数据, 然后实时把这些信息发送到 Kafka 分布式发布订阅消息系统,接着由 Spark Streami ...

  5. (16)zabbix history trends历史与趋势数据详解

    1. 保留历史数据 我们可以通过如下方式来设置保留数据的时长:监控项(item)配置里匹配更新监控项(item)设置Housekeeper tasksHousekeeper会定期删除过期的数据.如果数 ...

  6. 分布式监控系统之Zabbix 使用SNMP、JMX信道采集数据

    前文我们了解了zabbix的被动.主动以及web监控相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14024212.html:今天我们来了解下zabb ...

  7. 如何从Linux系统中获取带宽、流量网络数据

    引入 国外的云主机厂商,例如AWS提供的网络数据是以流量为单位的,例如下面的图片: 从上图来看,其取值方式为 每隔5分钟取值1次,(每次)每个点显示为1分钟内的流量字节数(Bytes) 带宽与流量 我 ...

  8. 25 Zabbix系统数据表结构介绍

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 25 Zabbix系统数据表结构介绍 自学Zabbix之路15.1 Zabbix数据库表结构简单解 ...

  9. LoadRunner测试ajax框架,回放后系统中没有产生数据解决方法

    1.QTP11 下载地址:http://www.genilogix.com/downloads/unified-functional-testing/quicktest-professional-11 ...

随机推荐

  1. Tomcat建立多个应用(Web Server),多个主机,多个站点的方法

    https://blog.csdn.net/chungle2011/article/details/52317433 http://piperzero.iteye.com/blog/1475773 转 ...

  2. lapis 项目添加prometheus 监控

      lapis 是基于openresty 扩展的,所以直接将支持prometheus的模块构建进openresty 就可以了 我使用的是nginx-module-vts 模块 环境准备 我已经构建好了 ...

  3. Avoiding post increase or decrease

    When we write a loop, most of us will use post increase or decrease, but there is a better solution. ...

  4. 曾经很强大的免费 ERP 2BizBox

    曾经很强大的免费 ERP 2BizBox 整个功能很强大,特别是生产,工单也很完善,有损耗,有反冲等功能. 流程比较规矩,需要先采购后才能使用,只有生产后才能销售,工单有组装和拆装,工程有工程更改,也 ...

  5. MCU ADC 进入 PD 模式后出现错误的值?

    MCU ADC 进入 PD 模式后出现错误的值? 在调试一款 MCU,最开始问题是无法读到 ADC 的值,应该是读到的值是异常高. 怀疑问题 可能是主频太低,为了降低功耗,这个 MCU 主频被我降了很 ...

  6. 23 模块 os sys pickle json

    一.   os模块 主要是针对操作系统的 用于文件操作 二.    sys 模块 模块的查找路径   sys.path 三   pickle 模块 1.  pickle.dumps(对象) 序列化  ...

  7. TypeScript 之 NPM包的类型

    https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Typings%20for%20NPM%20Packages.htm ...

  8. EnvironmentError: mysql_config not found问题解决(centos7下python安装mysql-python)

    centos7下python安装mysql-python模块,执行命令: pip install mysql-python 出现报错:EnvironmentError: mysql_config no ...

  9. Apache 配置Https 转发Tomcat Http

    Apache 相对于nginx的配置对比起来相当复杂啦,朋友之前的系统使用的是Apache需要增加一个虚拟主机,主要配置从Apache转发Tomcat. 首先需要拆解下步骤: Apache 支持Htt ...

  10. Fixed-point multiplication (C166 A*B/B)

    I want to multiply two fixed point numbers. After the multiplication I have to shift the result so t ...