zabbix 数据库清理
本帖最后由 rdcwayx 于 2014-09-17 13:10 编辑zabbix服务器运行了一年了,数据库很大了,50GB以上,希望能够做个瘦身。听听大家的意见。
一台zabbix,监控100台左右的agents。 环境全在云上,zabbix数据库用的是aws RDS. 也就是说没有数据库服务器,没法直接登录到数据库服务器上,只能通过sql tools 链接数据库来管理。 所有的查询,清理命令都必须通过sql命令来运行。
能够在不损失至少3个月内的数据的情况下做瘦身。 大家都是如何做的。
************
补充:
最后知道怎么回事了。 环境里有两个不同版本的zabbix (2.0 和 2.2), 生产环境的版本是2.0 ,其housekeeper缺省是激活的。 但是UAT环境更新到2.2后,缺省是不激活的。
https://www.zabbix.com/documentation/2.2/manual/installation/upgrade_notes_220Housekeeper changes
The DisableHousekeeping server configuration option is supported no more. Instead, finer controls are located in the frontend, in Administration → General → Housekeeper, allowing to selectively enable/disable housekeeping processes for specific tables.
Housekeeper is disabled by default after upgrading to 2.2. The desired housekeeper functionality should be enabled manually.这样的话,同样的运行时间,一个2.0环境里,数据库的大小一直停留在15GB,但是在2.2 的zabbix里,数据库不停的增长,即使现在激活housekeeping,数据库大小没有马上下降,但是增长的幅度减少很多。 这样也就在可控之内了。 本帖最后由 rdcwayx 于 2014-09-05 20:18 编辑
这个是用于查找数据库大小的命令。 SELECT table_schema , sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB"FROM information_schema.TABLES GROUP BY table_schema;用的sql管理软件是: MysqlWorkbench
数据库版本是: mysql (5.5.27)
这个命令可以用来查找最大的几个table sizeSELECT table_name AS "Tables",
round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB"
FROM information_schema.TABLES
WHERE table_schema = 'zabbix'
ORDER BY (data_length + index_length) DESC;我这边运行了这个命令后, 就这个两个table: history_uint (30GB) 和 history (24GB) 就用掉几乎全部的空间了。 这样的话,目标已经找到。
再运行这个命令, 用来确认是否有日期行。 可惜没有,那么就不能按照日期来删除记录了desc history_uint
field, type, null, key, default,extra
最后就剩下trancate命令了:truncate table history;
truncate table history_uint; zabbix 没接触过 但还是要顶一下。 本帖最后由 skykiker 于 2014-09-11 09:00 编辑
Zabbix不是可以设置历史数据保留期间吗?housekeeping功能可以自动删旧数据 skykiker 发表于 2014-09-11 09:00 static/image/common/back.gif
Zabbix不是可以设置历史数据保留期间吗?housekeeping功能可以自动删旧数据
zabbix有支持你提到的类似的历史记录自动整理功能,叫做 housekeeper:
http://zabbixzone.com/zabbix/history-tables-housekeeper/
但是有人说有缺陷,housekeeper开启的话,会损失性能。 可以手工或通过存储过程以及脚本程序定时的删除history和trend开头的表中的内容即可。这两类表中的clock字段是用来记录时间的,所以删除时以clock字段作为条件即可。 bamboo789 发表于 2014-09-11 13:38 static/image/common/back.gif
可以手工或通过存储过程以及脚本程序定时的删除history和trend开头的表中的内容即可。这两类表中的clock字段 ...
能否分享一些你用过的清除命令吗?
页:
[1]