清理 zabbix 历史数据, 缩减 mysql 空间
跳到导航
跳到搜索
Question:
zabbix 由于历史数据过大, 总是报警
服务器:Zabbix server发生:Disk I/O is overloaded on Zabbixserver故障
告警主机:Zabbix server 告警时间: 告警等级:Warning 告警信息: Disk I/O is overloaded on Zabbix server 告警项目:system.cpu.util[,iowait] 问题详情:CPU iowait time:34.76 % 当前状态:PROBLEM:34.76 %
告警主机:Zabbix server 告警等级:Average 告警信息: Zabbix history syncer processes more than 75% busy 告警项目:zabbix[process,history syncer,avg,busy] 问题详情:Zabbix busy history syncer processes, in %:70.33 % 当前状态:PROBLEM:70.33 %
一开始用iotop 查看到的居然是mysql 原来是那个时候刚刚好是zabbix history 相关的tables导致的 哈哈
开始大家还以为是mysqldump 的问题
Solution:
mysql> desc history; mysql> select max(itemid) from history; +-------------+ | max(itemid) | +-------------+ | 46582 | +-------------+ 1 row in set (0.00 sec) mysql> select * from history where itemid=46582 limit 1, 20; +--------+------------+--------+-----------+ | itemid | clock | value | ns | +--------+------------+--------+-----------+ | 46582 | 1396361332 | 0.0000 | 81875000 | | 46582 | 1396361362 | 0.0000 | 768297000 | | 46582 | 1396361392 | 0.0000 | 656787000 | | 46582 | 1396361422 | 0.0000 | 665169000 | | 46582 | 1396361452 | 0.0000 | 973570000 | 删除数据方法 取得时间戳, 时间只保留至 2017 1 1 日 1. date +%s -d "Jan 1, 2017 00:00:00" + date +%s -d 'Jan 1, 2017 00:00:00' 1483200000 2. mysql> delete from history where clock < 1483200000; mysql> delete from history_uint where clock < 1483200000; 3. optimize table mysql> optimize table history_uint; mysql> optimize table history; 4.重启启动 zabbix, php, nginx, mysql(看情况) 新问题出现: 当前 zabbix 进行初始化, 会对 mysql 进行大量数据 r/w 操作 因此可能会发生下面警报, 经过 5 分钟后初始化, 报警会自动消除, 不用担心. http://xficc.blog.51cto.com/1189288/1571282
星期五 10 2月 2017