Zabbix 数据清理
目录
- Zabbix 数据清理的一系列操作
- 一、问题
- 二、解决办法
Zabbix 数据清理的一系列操作
基本信息:
Zabbix 版本 4.0.9
MySQL 版本 5.5
一、问题
我们将 Zabbix
的数据存放在测试环境的 RDS (阿里云)上,但是这个 RDS 购买的时候就只有 10G 的存储,所以监控没有几个月,我们的数据库就报存储空间不足的预警了。
首先进行排查,是哪些表占用的存储空间比较多呢,我们发现主要是 history
和 history_uint
这两个表。占用空间最大的是 history_uint
表。
那么这两个表分别是存储什么内容呢?
history_uint
该表存储的是监控项的无符号整型的数据。
该数据的保存时长,取决于在监控项设置的 历史数据保留时长。
CREATE TABLE `history_uint` (`itemid` bigint(20) unsigned NOT NULL,`clock` int(11) NOT NULL DEFAULT '0',`value` bigint(20) unsigned NOT NULL DEFAULT '0',`ns` int(11) NOT NULL DEFAULT '0',KEY `history_uint_1` (`itemid`,`clock`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
itemid 是 监控项 ID
clock 是数据的时间的时间戳(unix)
value 是监控项对应的数据值
ns 是 纳秒时间值(小于1s的值),
监控项的精确实际收集时间,是由 clock + ns 组成的。
history
这个表保存的是浮点型的。
像 history_str
等保存的是 字符型数据。这些都是我们在设置监控项的对应的信息类型决定的。
该数据的保存时长,取决于在监控项设置的 历史数据保留时长。
扩展
表 trends
是保存了趋势数据用的,和 history 不同的是,trends 表仅仅保存了
小时平均的值。所以 trends 表也有很多的类型,对应history。
二、解决办法
临时解决办法
针对这个问题,我们临时的解决办法就是,就删除 history_uint
和 history
的一些历史数据。
首先获取要删除时间的一个时间戳,比如我们要删除 2019年 9月10号 11点00之前的数据。那么这个时间对应的时间戳是 1568084400
.
我们进行删除 history_uint
里的数据,这里需要注意一个点,如果我们的数据量比较多的话,我们建议分多个时间段进行删除,比如我们数据库里面由 2018年 10月份到2019年10月份的数据 ,那么我们可以将里面的数据分成4个阶段进行删除,从 2018年10月份到 2019年1月份,从 2019年1月份到 2019年4月份,这样就可以避免一次性删除数据过多导致数据库的负载比较大。(或者也可以使用 limit 10000)
delete history_uint
delete from history_uint where clock < 1568084400 LIMIT 10000;
delete history
delete from history where clock < 1568084400 LIMIT 10000;
在执行完上面的删除操作之后,我们发现一个很异常的事情发生了。
就是我们删除了那么多的数据,但是数据的储存空间是没有减少的。反而增加了(这不是由于新增加的数据导致,后面觉得是阿里云的显示不准确).
原因是 :
对于delete from table_name where xxx带条件的删除, 不管是 innodb
还是 MyISAM
都不会释放磁盘空间.
为什么delete where 删除空间不会减少? 举个例子,一个公司有 100个工位,有100个人坐着,当有50个人离职了,但是他们的工位还是存在的,只有在把工位拆除了才会不存在, 它们的工位也是可以安装新入职的员工的.
所以我们需要进行 OPTIMIZE TABLE
操作,进行释放空间.
注意: 在optimize table '表名'
运行过程中,MySQL
会锁定表。
OPTIMIZE TABLE history_uint;
OPTIMIZE TABLE history;
在 RDS 操作完之后, 我们大概需要过几分钟才能在控制台看到我们的实际储存信息.
借鉴内容: https://blog.csdn.net/weixin_40596063/article/details/82978736
1、drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ,不保留表结构,;
2、truncate table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM 。truncate table保留表结构,删除方式类似drop table;
3、delete from table_name删除表的全部数据,对于MyISAM 会立刻释放磁盘空间 ,InnoDB 不会释放磁盘空间;
4、对于delete from table_name where xxx带条件的删除, 不管是innodb还是MyISAM都不会释放磁盘空间;
5、对于delete操作(或带条件的delete)需要释放空间,在delete以后使用optimize table table_name 会立刻释放磁盘空间。不管是innodb还是myisam ;所以要想达到释放磁盘空间的目的,delete以后执行optimize table 操作。
对于delete之后未释放的空间。在insert时无需新开辟空间。会使用保留空间 。
永久解决办法
- 数据量过多是由于我们保存的历史数据的时间过长,我们可以设置 历史数据的保留时长,将该值设置的更短一些,这样数据量也就随着减少了。
- 扩大数据库的储存空间。
转载于:https://www.cnblogs.com/operationhome/p/11518973.html
Zabbix 数据清理相关推荐
- Python数据清理终极指南(2020版)
作者 | Lianne & Justin 译者 | 陆离 出品 | AI科技大本营(ID:rgznai100) 一般来说,我们在拟合一个机器学习模型或是统计模型之前,总是要进行数据清理的工作. ...
- 独家 | 用于数据清理的顶级R包(附资源)
作者:Anna Kayfitz,CEO of StrategicDB Corp 翻译:顾宇华 校对:杨光 本文约1700字,建议阅读5分钟. 确保数据干净整洁应该始终是数据科学工作流程中首要也是最重要 ...
- 臭名昭著的数据清理和准备问题,如何利用AI完美解决?
2020-03-18 17:01:00 全文共3299字,预计学习时长10分钟 来源:Pexels 人工智能和深度学习在处理非结构化数据方面表现突出,从自然语言理解和自动知识库构建到图像和视频的分类和 ...
- python 导出数据并发邮件_Python自动化导出zabbix数据并发邮件脚本
Zabbix没有报表导出的功能,于是通过编写脚本导出zabbix数据并发邮件.效果如下: 下面是脚本,可根据自己的具体情况修改: #!/usr/bin/python` `#coding:utf-8` ...
- 数据挖掘-数据清理过程
数据清理-数据清理过程 数据清理过程的第一步是偏差检测(discrepancy detection). 导致偏差的因素有很多,包括: 具有很多可选字段的设计糟糕的输入表单 人为的数据输入错误 有意的错 ...
- pandas中drop用法_python进行数据清理之pandas中的drop用法
好久好久没有更新博客了,之前自学的估计也都忘记差不多了.由于毕业选择从事的行业与自己的兴趣爱好完全两条路,心情也难过了很久,既然入职了就要好好干,仍要保持自己的兴趣,利用业余时间重拾之前的乐趣. 从基 ...
- python数据清理的实践总结_Python数据清洗实践
原标题:Python数据清洗实践 DATA CLEANING WITH PYTHON 作者 | Balogun Omobolaji 翻译 | 酱番梨.祝弟弟基督教 校对 | Pita 审核 | 约翰逊 ...
- Spark Streaming揭秘 Day16 数据清理机制
Spark Streaming揭秘 Day16 数据清理机制 今天主要来讲下Spark的数据清理机制,我们都知道,Spark是运行在jvm上的,虽然jvm本身就有对象的自动回收工作,但是,如果自己不进 ...
- 数据清理最终实现了自动化
苹果 | GOOGLE | 现货 | 其他 (APPLE | GOOGLE | SPOTIFY | OTHERS) Editor's note: The Towards Data Science po ...
- 实现klib_使用klib加速数据清理和预处理
实现klib TL;DRThe klib package provides a number of very easily applicable functions with sensible def ...
最新文章
- SQL判断是否存在,还在用 count 操作?试试这条 SQL 语句,性能杠杠的!
- 用git进行项目搭建
- CSS设置文本字体居中
- springboot+swagger传递参数的几种格式
- 金九银十中,看看这31道Android面试题
- redis watch multi exec 关系
- SELinux深入理解
- html简单父子页面,js 的 iframe 父子页面通信的简单方法
- Python 中 xpath 语法 与 lxml 库解析 HTML/XML 和 CSS Selector
- chkconfig: 2345 20 80
- 不懂这37个数据中心术语,怎么混数据圈饭局!
- 【会议/期刊】中科院推荐计算机领域人工智能方向会议和期刊列表
- 《机器学习实战》学习笔记
- OC中关于NSDate详解及获取当前时间等常用操作
- MAC编译OpenJDK8:ld: library not found for -lstdc++(独家解决办法)
- Android刷机Windows10,蓝魔i9s Win10+Android双系统的刷机教程及固件下载
- 机器人学相关书籍(长期更新)
- 19-备忘录模式Quarkus实现
- 2021数据分析师薪资大PK
- 网上书店黑盒测试_网上书店管理系统