一、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. Apache Hadoop 源码阅读

    总之一句话,这些都是hadoop-2.2.0的源代码里有的.也就是不光只是懂理论,编程最重要,还是基本功要扎实啊.... 在hadoop-2.2.0的源码里,按Ctrl + Shift + T . 跳 ...

  2. A Tour of Go Exercise: Fibonacci closure

    Let's have some fun with functions. Implement a fibonacci function that returns a function (a closur ...

  3. A Tour of Go Range continued

    You can skip the index or value by assigning to _. If you only want the index, drop the ", valu ...

  4. DTD Tutorial

    The purpose of a DTD (Document Type Definition) is to define the legal building blocks of an XML doc ...

  5. spring读书笔记----Quartz Trigger JobStore出错解决

    将Quartz的JOBDetail,Trigger保持到数据库的时候发现,系统报错 The job (DEFAULT.jobDetail) referenced by the trigger does ...

  6. Java算法实例集合

    这里是princeton搜集的算法课程Java示例.包括超过了100 Java个算法程序源码.Javadoc和测试数据.点击这里查看.

  7. android的ListView做表格添加圆角边框

    边框,圆角,都可以实现的 在drawable目录下添加view_yuan_morelist.xml,设置控件的边框代码.如下: <?xml version="1.0" enc ...

  8. 【JSP】Cookie的使用及保存中文,并用Cookie实现购物车功能

    Cookie是服务器存放在客户端的一些数据,比如密码,以及你曾经访问过的一些数据. 设置Cookie //设置cookie Cookie cookie = new Cookie("TOM&q ...

  9. [Whole Web] [Node.js] [Browserify] [Grunt] Automation task with grunt-browserify & grunt-contrib-watch

    What we want is when the server side Node.js files have been changed, we want to use browserify to b ...

  10. [设计模式1]--单例模式(SINGLETON)

    搞笑解释: 俺有6个漂亮的老婆,她们的老公都是我,我就是我们家里的老公Sigleton,她们只要说道“老公”,都是指的同一个人,那就是我 定义: 单例模式确保某一个类只有一个实例,而且自行实例化并向整 ...