Zabbix进阶3--数据库监控数据磁盘使用量解析及预测

Zabbix对磁盘的决定性因素有四个

  1. 每秒处理的数据量
    这个问题不说,大家也明白。这边的每秒只是一个平均值,例如我有3000个监控项,每60秒刷新一次,那么平均每秒有50(3000/60)个数据要处理。就是说每秒有50条数据要插入MySQL
  2. 历史记录保存时间
    zabbix对每个监控项的值都要记录下来,这些记录一般保留几周到几个月,每个值都需要暂用硬盘空间。假如一个数据你要保留30天,而且每秒有50个值要保留,那我们一共有129,600,000(30天24小时3600秒)50个值,一条记录多大,由你的数据库引擎和你存储的数据类型来决定(浮点型,整形,字符型等等),一般来说一条记录需要占用50个字节(一个大概值),在这个案例中129,600,000个记录大约需要(12960000050字节)6.5G的硬盘空间
  3. 趋势数据保存时间
    什么是趋势数据呢?当你查看一周或者一月的图表,图表上看到的MAX/MIN/AVG/COUNT都是取自趋势数据,趋势数据一小时获取一次,一般情况下,趋势数据一条记录大概占用128字节,如果我们想保存5年趋势数据,3000个监控线需要2.4GB(3000个24小时356天*128字节)每年,5年一共16.8G
  4. 事件记录保存时间
    报警、警告、恢复等等事情,一个事件大概占用130个字节,一般情况下不会太多,除非运维做的太糟糕,或者运维要求太严格,把阀值调的很低。假如这个运维今年本命年,既没拜佛有没烧香,更别说给服务器贴灵符,于是这一年每秒钟就有一个事件发生,那么事件这一年占用的数据空间为:1年365天24小时3600秒130字节大概为4.1G空间。

数据库空间计算公式

zabbix配置:固定大小,一般<10MB

历史数据:天数*(监控项总数/刷新频率)24小时3600秒*50字节

趋势数据:天数(监控项总数/3600)24小时3600秒128字节

事件数据:天数事件个数(大概值)24小时3600秒130字节