设为首页 收藏本站
查看: 1233|回复: 0

[经验分享] 处理Zabbix历史数据库办法一

[复制链接]

尚未签到

发表于 2019-1-20 06:36:37 | 显示全部楼层 |阅读模式
  一 问题描述
  随着Zabbix监控的主机和监控项目增多,Zabbix的历史数据会越来越多,MySQL数据库磁盘空间很容易就爆满,同时Zabbix前端查询数据会变得越来越慢。特别是通过Zabbix的API生成自定义Screen的情况下,打开每个Screen非常慢
  查看Zabbix数据库目录文件

# ls -lh|grep G
total 248G
-rw-rw---- 1 mysql mysql 4.7G May  5 21:34 alerts.ibd
-rw-rw---- 1 mysql mysql 3.4G May  5 21:34 events.ibd
-rw-rw---- 1 mysql mysql  95G May  5 21:34 history.ibd
-rw-rw---- 1 mysql mysql  25G May  5 21:34 history_text.ibd
-rw-rw---- 1 mysql mysql 112G May  5 21:34 history_uint.ibd
-rw-rw---- 1 mysql mysql 2.9G May  5 21:34 trends.ibd
-rw-rw---- 1 mysql mysql 4.3G May  5 21:34 trends_uint.ibd  

  整个Zabbix数据库目录大小为248G,history和history_text以及history_uint几张表就占用了大部分磁盘空间
  

  

  二 解决办法
  如果不想保留太长时间的历史数据,例如只保留一个月的历史数据可以使用以下方法
  1.停掉zabbix server

  service zabbix-server stop
  

  这里需要特别注意一下,在部署Zabbix架构的时候最好选择Zabbix server ---- Zabbix proxy --- Zabbix --- agent的架构。即使只有几台主机最好也部署一个proxy,根据不同应用或者不同的机房可以部署多个proxy。部署zabbix有以下几个好处:
  proxy专门收集和暂存agent发来的数据,可以减轻server端的压力
  使用proxy可以实现分布式监控,例如监控不同网络互相不通的服务器

  增强安全性,不直接暴露zabbix server的信息

  维护的时候很方便,例如清理zabbix的历史数据,zabbix停掉后的监控数据可以设置在proxy端保留时间长些,等维护好后proxy会同步数据到server端,尽量减少数据丢失。
  

   DSC0000.png
  

  在停掉zabbix server之前需要注意zabbix proxy的两个参数
  ProxyLocalBuffer=3
  设置zabbix proxy暂存在本地mysql的监控数据的时间。默认是0,不暂存。即使zabbix proxy已经把数据发送给了zabbix server,还是会暂存数据在本地设置的时间。取值范围是0~720小时

  

  ProxyOfflineBuffer=5
  设置当zabbix proxy与zabbix server无法连接时保留监控数据的时间间隔。默认是1小时,取值是1~720小时。这个参数特别有用,我就是在之前的几次维护中,停掉zabbix server后没有设置zabbix proxy的这个参数,所以当维护结束后启动zabbix server,会发现有段时间内的数据没有。这是因zabbix proxy按照默认的保留时间执行housekeeper把过期的数据删除了。

  这个时间根据最好根据要维护的时间来设定,比如要维护10个小时,那么就要设置ProxyOfflineBuffer=10
  这样就不至于这10个小时之间的数据都丢失了。也有一个问题,如果时间间隔太大的话,zabbix proxy重新推送数据到zabbix server会导致双方的服务器压力都会增大。
  

  

  

  

  

  

  

  2.创建新表
  create table history_new like history;

  create table history_uint_new like history_uint;
  create table history_text_new like history_text;
  

  3.将近期(一个月)的数据插入到新的表中
  insert into history_new select * from history where clock > '1459785600';
  insert into history_text_new SELECT * FROM history_text WHERE clock > '1461945600';
  insert into history_uint_new SELECT * FROM history_uint WHERE clock > '1461945600';
  

  这里的clock是UNIX时间戳
  

  

  这里根据数据量的大小可以能会花费好几个小时的时间
  

  

  

  4.重新更改表名
  alter table history rename history_old;
  alter table history_new rename  history;
  

  alter table history_uint rename history_uint_old;
  alter table history_uint_new rename history_uint;
  

  alter table history_text rename  history_text_old;
  alter table history_text_new rename  history_text;
  

  5.重新启动zabbix server

  重新启动zabbix后,有段时间会不停地报zabbix agent不可用的报警信息,过段时间就会恢复正常。
  

  6.删除旧表
  drop table history_old;
  drop table history_text_old;
  drop table history_uint_old;
  


  另外可以更改items表的history字段
  UPDATE items SET history = '15' WHERE history > '30'
  

  这样就将每个item的history保留时间设置为15天。但是这样设置的话如果想看几个月之前的数据就看不到了。
  

  

  

  这种方法处理起来效率非常低,必须要停掉zabbix server,然后导入一个月内的数据到新的表,如果数据量很大会很花时间。
  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-665342-1-1.html 上篇帖子: zabbix action 未被触发问题的排查 下篇帖子: zabbix配置grafana图形显示插件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表