数据有效期设置
先来看看设置数据有效期的方法:
找到自己要设置的监控项,如上图:
趋势存储数据和历史存储数据详解:
案例:
100台服务器,每台服务器有30个监控项,每个监控项60秒刷新一次,需要多大的硬盘呢?
zabbix基本都是通过web配置,这些配置数据也是存放到数据库里的,但是它对硬盘容量的要求基本可以忽略不计,zabbix对硬盘的决定性因素有4个,如下:
1. 每秒处理的数据量
这边的每秒只是一个平均值,例如我有3000个监控项,每60秒刷新一次,那么平均每秒有50(3000/60)个数据要处理。就是说每秒有50条数据要插入MySQL
2. 历史记录保存时间(历史存储数据)
zabbix对每个监控项的值都要记录下来,这些记录一般保留几周,具体看你的配置了。每个值都需要暂用硬盘空间。假如一个数据你要保留30天,而且每秒有50个值要保留,那我们一共有129,600,000(30天*24小时*3600秒)*50个值,一条记录多大,由你的数据库引擎和你存储的数据类型来决定(浮点型,整形,字符型等等),一般来说一条记录需要占用50个字节(一个大概值),在这个案例中129,600,000个记录大约需要(129600000*50字节)6.5G的硬盘空间
简单来说:历史存储数据,每60秒刷新一次(具体看你配置),主要作用就是某一刻的数据,当前所有监控项的值以及触发报警值都是从历史存储数据里获取的,具有时效性,过了这一时刻,这些数据基本上就没有什么用了,所有我们可以把有效期设置的短一点
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空间。
5. 数据库空间计算公式
zabbix配置:固定大小,一般<10MB
历史数据:天数*(监控项总数/刷新频率)*24小时*3600秒*50字节
趋势数据:天数*(监控项总数/3600)*24小时*3600秒*128字节
事件数据:天数*事件个数(大概值)*24小时*3600秒*130字节
6. 谈心
看到这里,大家都心里有数据了,数据库硬盘空间=配置文件大小+历史记录+趋势记录+事件记录。虽然这个硬盘会不停的增长,但是总有一天会停止增长,空间一直保持不变,为什么?看完了这篇还问为什么的话,你从头再看一次。