一、zabbix数据库

zabbix-server将采集到的数据存储在数据库中,最常用的Mysql,数据存储的大小和每秒处理的数据量有关,数据存储取决于每秒处理的数据量和Housekeeper的删除数据。

zabbix-server讲采集到的数据主要存储在History和Trends表中

History表主要存储收集到的历史数据,而Trends主要存储经过计算的历史数据,如每小时数据的最小值、最大值和平均值。

对于超过期限的数据,zabbix用Housekeeper进程进行数据清理,其原理主要是执行SQL中的delete语句执行删除数据库,随着监控项的增多,数据存储也越来越大,执行Housekeeper严重影响DB的性能,从而影响zabbix监控服务器。

对于很大的表优化有横向扩展和纵向扩展,要么用足够好的硬件要么进行数据分布式,分表可以看做数据分布式一种,将数据按一定规则划分区间避免全表扫描带来的问题,最大限度提高了性能。可以按天划分也可以按月划分表。采用表分区后需要关闭Housekeeper的功能,此时需要清理历史数据只需要对表分区对应的历史数据进行删除即可。关闭Housekeeper方法:Administration->General->Housekeeper,去掉勾选状态即可。

二、备份zabbix数据库

备份数据库可以防止数据库意外损坏到知道配置数据丢失,这是是对单表备份,而非全表除history*、trends*、Acknowledges、Alerts、Auditlog、Events、service_alarms表。

#!/bin/bash

source /etc/bashrc

source /etc/profile

MySQL_USER=zabbix

MySQL_PASSWORD=zabbix

MySQL_HOST=localhost

MySQL_PORT=

MySQL_DUMP_PATH=/mysql_backup

MySQL_DATABASE_NAME=zabbix

DATE=$(date '+%Y-%m-%d')

[ -d ${MySQL_DUMP_PATH} ] || mkdir ${MySQL_DUMP_PATH}

cd ${MySQL_DUMP_PATH}

[ -d logs ] || mkdir logs

[ -d ${DATE} ] || mkdir ${DATE}

cd ${DATE}

TABLE_NAME_ALL=$(mysql -u${MySQL_USER} -p${MySQL_PASSWORD} -P${MySQL_PORT} -h${MySQL_HOST} ${MySQL_DATABASE_NAME} -e "show tables"|egrep -v "(Tables_in_zabbix|history*|trends*|acknowledges|alerts|auditlog|events|service_alarms)")

for TABLE_NAME in ${TABLE_NAME_ALL}

do

mysqldump -u${MySQL_USER} -p${MySQL_PASSWORD} -P${MySQL_PORT} -h${MySQL_HOST} ${MySQL_DATABASE_NAME} ${TABLE_NAME} >${TABLE_NAME}.sql

sleep 

done

[ "$?" ==  ] && echo "${DATE}: Backup zabbix succeed" >> ${MySQL_DUMP_PATH}/logs/ZabbixMysqlDump.log

[ "$?" !=  ] && echo "${DATE}: Backup zabbix not succeed" >> ${MySQL_DUMP_PATH}/logs/ZabbixMysqlDump.log

cd ${MySQL_DUMP_PATH}/

rm -rf $(date +%Y%m%d --date='5 days ago')

exit 

三、zabbix的磁盘容量大小:

1、历史数据的保存

zabbix的数据库大小取决于NVPS(每秒处理的平均数量),如果有60000个监控项,刷新周期60s,那么每秒处理的数据为6000/60=1000(条),说明此刻每秒将会向数据库新增加1000条数据,每个历史数据大小约为50Bytes,可以设置历史数据库保存天数,计算公式:

历史数据大小=天数*每秒处理的数据*24h*3600s*50Bytes

例如:每秒处理1000条,保存三个月90天大小=90*24*3600*1000*50=388800000000(B)大概120G,如果存一年则362G*12=1448(GB)

2、趋势数据的保存

每个Items趋势的数据大约128B,大小取决于数据库类型。计算公式:

趋势数据大小=监控项*24h*3600s*128B

例如:60000个监控项,保存一年大小为60000*24*365*128=约67GB

3、事件数据的保存

每个事件数据大约130B,假如保存1年,需要1*24*3600*130=大约4GB

既6W个监控项,监控频率60s,保存一年需要1448+67+4=1519GB磁盘空间,而实际中需要占用的空间比这更大。

总的占用空间大小=历史数据大小+趋势数据大小+事件数据大小+zabbix配置文件(10M多)

zabbix数据存储的更多相关文章

  1. Zabbix 数据清理

    目录 Zabbix 数据清理的一系列操作 一.问题 二.解决办法 Zabbix 数据清理的一系列操作 基本信息: Zabbix 版本 4.0.9 MySQL 版本 5.5 一.问题 我们将 Zabbi ...

  2. Zabbix 历史数据存储到 Elasticsearch

    Zabbix 历史数据存储到 Elasticsearch Zabbix 3.4.6 版本开始支持历史数据存储到 Elasticsearch, 早就想测试这个功能,最近有个需求需保存 zabbix 的历 ...

  3. DevOps专题 |监控,可观测性与数据存储

    对于DevOps而言,监控是其中重要的一环,上一次的专题内容中,我们与大家分享了大型企业级监控系统的设计.今天我们将和大家从另一个角度进一步探讨互联网工程技术领域的监控设计(monitoring):系 ...

  4. Kooboo CMS技术文档之三:切换数据存储方式

    切换数据存储方式包括以下几种: 将文本内容存储在SqlServer.MySQL.MongoDB等数据库中 将站点配置信息存储在数据库中 将后台用户信息存储在数据库中 将会员信息存储在数据库中 将图片. ...

  5. Android之数据存储的五种方法

    1.Android数据存储的五种方法 (1)SharedPreferences数据存储 详情介绍:http://www.cnblogs.com/zhangmiao14/p/6201900.html 优 ...

  6. Android之网络数据存储

    一.网络保存数据介绍 可以使用网络来保存数据,在需要的时候从网络上获取数据,进而显示在App中. 用网络保存数据的方法有很多种,对于不同的网络数据采用不同的上传与获取方法. 本文利用LeanCloud ...

  7. Android之文件数据存储

    一.文件保存数据介绍 Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的.文件可用来存放大量数据,如文本.图 ...

  8. Android之SharedPreferences数据存储

    一.SharedPreferences保存数据介绍 如果有想要保存的相对较小键值集合,应使用SharedPreferences API.SharedPreferences对象指向包含键值对的文件并提供 ...

  9. Atitit 数据存储视图的最佳实际best practice attilax总结

    Atitit 数据存储视图的最佳实际best practice attilax总结 1.1. 视图优点:可读性的提升1 1.2. 结论  本着可读性优先于性能的原则,面向人类编程优先于面向机器编程,应 ...

随机推荐

  1. HDU2686-Matrix & HDU3376-Matrix Again(费用流)

    比较简单的题了. 只需从左上角到右下角找两条路就可以了. 因为每个点只能走一次,所以拆点,限制流量为1. 因为求的是最大值,所以权值取反求最小值. 因为第一个点和最后一个点经过两次,只算一次,最后要减 ...

  2. Java for循环的几种用法详解

    本文非常适合初学Java的程序员,主要是来了解一下Java中的几种for循环用法,分析得十分详细,一起来看看. J2SE 1.5提供了另一种形式的for循环.借助这种形式的for循环,可以用更简单地方 ...

  3. 说点手动导jar包的细节Referenced Libraries

    对于Referenced Libraries 若是手动,新建好Scala项目工程,这里取名为ScalaInAction 得需将Scala 2.11.8自带的,换成2.10.*版本 在其上,点击右键,B ...

  4. 现代程序设计——homework-02

    关于题目: 题目地址:http://www.cnblogs.com/xinz/p/3318230.html 首先,不得不说自从写完第一次作业,我就开始“抠”这个题,第一眼看这个题就感觉好“坑”,读一遍 ...

  5. ilitek的电容屏驱动程序ilitek_aimvx.c的分析

    本文记录了ili驱动程序. 参考  http://linhui.568.blog.163.com/blog/static/962652682011786352856/ 后记:现在的情况是,在win上是 ...

  6. paip.云计算以及分布式计算的区别

    paip.云计算以及分布式计算的区别 云计算的特点 1 网格计算 2 分布式计算 2 云计算以及网格计算以及分布式计算的区别 2 作者Attilax  艾龙,  EMAIL:1466519819@qq ...

  7. 【21】必须返回对象时,别妄想返回器reference

    1.考虑有理数Rational,有个友元操作符*,返回Rational对象.返回对象,导致临时对象的构造,析构.效率低,因此会想返回方法内局部对象的引用,这种方法不可行.为什么? 2.调用方法是在st ...

  8. Codeforces Round #321 (Div. 2) C. Kefa and Park dfs

    C. Kefa and Park Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/580/probl ...

  9. MmSystem播放Wav格式声音

    //MmSystem播放Wav格式声音 //MmSystem 支持 *.wav声音格式 snd ->SoundRecorderuses MmSystem; //引用MmSystem//播放系统声 ...

  10. VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群

    VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群 下一篇:VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群-整合Zookeeper和Hbase 近期 ...