zabbix——计算所需数据库空间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix——计算所需数据库空间相关的知识,希望对你有一定的参考价值。

一共有三类数据:

历史数据(每秒记录一次)

保存天数*每秒处理的数据量*86400(秒)*50Bytes(每条数据的大小)

 

趋势数据(每小时记录一次)

保存天数*每小时处理的数据量*24(小时)*128Bytes(每条数据的大小)

 

事件数据

保存天数*每秒产生的数据量*86400(秒)*130Bytes(每条数据大小)

 

例:

一共有1000台被监控主机,平均每台主机上有60个Item,每60秒采集一次数据。假设每台主机平均每秒产生1个事件,数据保存时间为默认,即历史数据保存90天,趋势数据保存365天,计算一年中,zabbix所需的数据库大小

 

总Item

 1000*60=60000

 

每秒采集的数据量

60000/60=1000

 

历史数据

90*1000*86400*50=388 800 000 000 Bytes = 362GBytes

 

趋势数据

365*60000*24*128=67 276 800 000 Bytes= 62.6GBytes

 

事件数据

365*1000*86400*130=4 099 680 000 000 Bytes=3.8 GBytes

 

平均每秒io量

(1000*3600*50+60000*128+3600*130)/3600=52263 Bytes = 51 KBytes

 

Zabbix数据库总共需要428.4GBytes左右的空间

 

 

附,计算用脚本:

#!/bin/bash
read -p "请输入被监控主机数: " host
read -p "请输入平均每台主机所需监控的Item数量: " item
read -p "历史数据保存多少天? " history
read -p "趋势数据保存多少天? " trend
 
totalItem=$[${host}*${item}]
datePerSecond=$[${totalItem}/60]
historyData=$[${history}*${datePerSecond}*86400*50/1024/1024/1024]
trendData=$[${trend}*${totalItem}*24*128/1024/1024/1024]
eventData=$[365*1*86400*130/1024/1024/1024]
totalData=$[${historyData}+${trendData}+${eventData}]
ioRate=$[(${datePerSecond}*3600*50+${totalItem}*128+3600*130)/3600/1024]
 
cat <<EOF
 
------------------计算结果---------------
 
历史数据所需容量: ${historyData}GBytes
趋势数据所需容量: ${trendData}GBytes
事件数据所需容量: ${eventData}GBytes
zabbix数据库总共需要:${totalData} GBytes 
平均每秒的磁盘IO量: ${ioRate} KBytes
EOF


 

 

效果

技术分享

 

 


以上是关于zabbix——计算所需数据库空间的主要内容,如果未能解决你的问题,请参考以下文章

zabbix 数据库数据清理

ZABBIX数据库迁移目录

企业级监控zabbix基础

代码重构,空间换时间,dictionary 不要用object ,需明确指定类型

在片段中创建自定义列表视图时出错所需活动,找到片段

算法的时间复杂度和空间复杂度