• 谈谈Zabbix的容量规划


    本文主要探讨Zabbix部署前的容量规划。


    CPU

    根据监控参数及选择的数据库引擎,Zabbix,特别是Zabbix数据库,可能需要大量的CPU资源,

    内存和磁盘

    Zabbix主要是基于Linux系统的软件,因此不需要占用过多的内存和磁盘。刚开始使用Zabbix,建议128MB物理内存和256MB可用磁盘空间。

    然而, 具体需要的内存大小和磁盘空间要根据主机数量和监控参数而定。如果你计划对监控的参数进行长期保存,你应该考虑至少在数据库中预留几个GB的空间,以用来保留历史数据。 每个Zabbix的守护进程需要与数据库服务器建立多个连接。分配给连接的内存数量,取决于数据库引擎的配置。

    当然,你使用的内存越多,你的数据库和Zabbix工作得越快!

    数据库容量

    Zabbix配置数据需要保留固定的磁盘空间,而且这个空间不会随着Zabbix系统的扩容不会增长太多。

    Zabbix数据库容量主要依赖于下列这些参数,这些参数也决定了存储历史数据所需要的空间:

    每秒处理值的数量(Number of processed values per second)

    这个参数是指每秒种Zabbix server收到的新值数量的平均数。比如,如果我们有3000个监控项(item),监控周期是60s,经计算所得,每秒处理值的数量为3000/60 = 50.

    这意味着每秒钟有50个新值写入Zabbix数据库。

    历史(History)数据的回收清理设置(Housekeeper)

    Zabbix会在一个固定周期内保存收到的值。正常情况下保留数周或者数月。每一个新收到的值会占用一定数量的磁盘空间以存放数据和索引。

    所以,如果我们每秒钟收到50个值,且希望保留30天的历史数据,值的总数将大约在 (30*24*3600)* 50 = 129,600,000,即大约130M个值。

    根据所使用的数据库引擎,以及收到值的类型【浮点(floats),整型(integers),字符串(strings),日志文件(log files)等】,单个值的磁盘使用量从40字节到数百个字节不等。一般而言,数值型(Numeric)的监控项占用大约90字节。 按之前的例子, 这意味着130M个值需要占用 130M * 90 bytes = 10.9GB 的磁盘空间。

    文本(text)/日志(log)类型的监控项值的大小无法准确地预测,但你可以按每个值大约500字节来计算。

    趋势(Trends)数据的回收清理设置(Housekeeper)

    Zabbix为trends表中的每个监控项的值,保留一组数据:一个小时的最大值/最小值/平均值/数量。这些数据用于趋势图表和历史图表的展现。用户无法自定义这一小时的保留周期。

    根据数据库的类型,Zabbix数据库需要为每组值总共占用约90字节的空间。 如果你需要保留趋势数据5年,那么3000个监控项值,每年需要 3000*24*365* 90 = 2.2GB 的空间 , 即5年需要 11GB 的空间。

    事件(Events)数据的回收清理设置(Housekeeper)

    每个Zabbix事件需要大约170字节的磁盘空间。很难估计Zabbix每天生成的事件数量。最糟糕的情况下,我们可能需要假设Zabbix每秒会生成一个事件。

    这意味着,如果我们需要保留3年的事件,需要3*365*24*3600* 170 = 15GB的磁盘空间。

    下表列出了用于计算Zabbix系统所需磁盘空间的计算公式:

    范围 所需磁盘空间的计算公式 (单位:字节)

    Zabbix配置文件 固定大小。一般10MB或更少。

    历史(History) days*(items/refresh rate)*24*3600*bytes

    items : 监控项数量

    days : 保留历史数据的天数

    refresh rate : 监控项平均轮询时间

    bytes : 保留单个值所需要占用的字节数,依赖于数据库引擎,一般大约90字节。

    趋势(Trends) days*(items/3600)*24*3600*bytes

    items : 监控项数量

    days : 保留趋势数据的天数

    bytes : 保留单个趋势数据所需要占用的字节数,依赖于数据库引擎,一般大约90字节。

    事件(Events) days*events*24*3600*bytes

    events : 每秒事件数。最糟糕的情况下,每秒一(1)个事件。

    days : 保留事件数据的天数

    bytes : 保留单个事件所需要占用的字节数,依赖于数据库引擎,一般大约90字节。

    根据现实环境中使用的MySQL后端数据库的统计,数值型(Numeric)监控项的值平均占用约90个字节,事件(Events)平均占用约170个字节。

    因此,所需要的磁盘总空间按下列方法计算:

    配置(Configuration) + 历史(History) + 趋势(Trends) + 事件(Events)

    安装完Zabbix,磁盘空间不会立即被分配。数据库大小根据回收清理(housekeeper)设置,在某些时间点增长或停止增长。

    根据上述公式,可计算出Zabbix需要使用的空间。同时,考虑到后续的扩容,建议预留至少20%的冗余量。

  • 相关阅读:
    Java基础(十四)——API(Calendar类、System类、StringBuilder类、包装类)
    异常
    Java基础(十三)——权限修饰符和内部类
    知识点总结
    Java基础(十二)— —多态
    Java基础(十一)— —继承、抽象类和接口
    java基础(十)——继承
    小程序外部向组件内部传递externalClasses -- 传入样式wxss
    小程序组件交互 -- 传入js
    promise封装小程序的请求类(request,清爽易懂)
  • 原文地址:https://www.cnblogs.com/luoahong/p/14123812.html
Copyright © 2020-2023  润新知