原文: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. 网站基于vs,复选框,单选款

    前端代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.a ...

  2. python——psutil的使用(获取进程信息)

    import psutil psutil.pids() [1, 2, 3, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 26, 27, 28, 2 ...

  3. 怎样解题 (G. 波利亚 著)

    第一部分 (已看) 目的 1. 帮助学生 2. 问题,建议,思维活动 3. 普遍性 4. 常识 5. 教师和学生,模仿和实践 主要部分,主要问题 6. 四个阶段 7. 理解题目 8. 例子 9. 拟订 ...

  4. C#更新程序设计

    更新程序设计 大致设想了两种更新方式,如下所示: 一种简单暴力,直接请求静态资源服务器上的文件 第二种考虑了网络传输不稳定时,中断的情况.再次启动更新时会检测本地文件下载多少了,然后接着上次中断的位置 ...

  5. 拷贝某个区间(copy,copy_back)

    copy 为outputIterator中的元素赋值而不是产生新的元素,所以outputIterator不能是空的 如要元素安插序列,使用insert成员函数或使用copy搭配insert_itera ...

  6. python 属性的访问权限,_,__,__XXX__

    1. 非私有变量,可以随意调用和修改 在class内部,有属性和方法,如下面的class Student 有name和score class Student(object): def __init__ ...

  7. WebSocket概念

    WebSocket 是什么? WebSocket 是一种网络通信协议.RFC6455 定义了它的通信标准. WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 ...

  8. linux shell获取键盘输入

    linux shell从键盘获取输入 代码1: #!/bin/bash #提示“Input your choice:”,把用户的输入保存入变量choice_user中read -p "Inp ...

  9. 文件如何转换成pdf或html格式

    1.使用jacob插件 2.使用方法 1)于word.ppt等上传文件转换为PDF格式文件的环境搭建,步骤如下:① 首先电脑要先安装office软件(不可以是WPS软件)② 需要把jacob.dll文 ...

  10. Apache Tika

    Tika入门 Tika是一个内容抽取的工具集合(a toolkit for text extracting).它集成了POI, Pdfbox 并且为文本抽取工作提供了一个统一的界面.其次,Tika也提 ...