半只蚂蚁 发表于 2019-1-22 08:59:43

Zabbix历史数据处理办法

  Zabbix历史数据处理办法
  

  方法一:本想删除某一时间戳之前的历史数据
  date "+%s" -d "20150101"
  1420041600
  

  SELECT TABLE_NAME AS "Table", round(((data_length + index_length) / 1024 / 1024), 2) AS Size_in_MB FROM information_schema.TABLESWHERE table_schema = 'zabbix' ORDER BY Size_in_MB DESC LIMIT 10;
  

  +----------------+------------+
  | Table          | Size_in_MB |
  +----------------+------------+
  | history_uint   |189699.00 |
  | history      |111647.00 |
  | trends_uint    |    6322.92 |
  | trends         |    1822.00 |
  | events         |    1252.00 |
  | history_str    |    1044.00 |
  | alerts         |      96.64 |
  | items          |      21.42 |
  | item_discovery |       6.75 |
  | graphs         |       5.19 |
  +----------------+------------+
  10 rows in set (14.15 sec)
  

  

  

  DELETE FROM `history_uint` WHERE `clock` < 1420041600;
  optimize table history_uint;
  DELETE FROM `history` WHERE `clock` < 1420041600;
  optimize table history;
  

  注:此方法几乎不可行,300G的历史数据执行命令一个多小时还处在等待锁表状态。删除的速度还没一增长的快。
  

  方法二:不保留历史数据快速
  一,备份除历史数据的数据库表
  mysqldump -uroot -p'yourpassword' zabbix--ignore-table=zabbix.history_uint --ignore-table=zabbix.history --ignore-table=zabbix.trends_uint -ignore-table=zabbix.trends --ignore-table=zabbix.events --ignore-table=zabbix.history_str >/data/backup20150626.sql
  二,新建数据库
  create database zabbix2 character set utf8;
  GRANT ALL PRIVILEGES ON zabbix2.* TO 'zabbix'@'localhost' IDENTIFIED BY'yourpassword';
  这里是建立的zabbix2数据库,名字可以随意取
  三,导入原架构和新数据
  mysql -uroot -p'yourpassword' zabbix2 < /root/zabbix-2.4.2/database/mysql/schema.sql
  mysql -uroot -p'yourpassword' zabbix2 < /root/zabbix-2.4.2/database/mysql/images.sql
  mysql -uroot -p'yourpassword' zabbix2 < /root/zabbix-2.4.2/database/mysql/data.sql
  mysql -uroot -p'yourpassword' zabbix2 < /data/backup20150626.sql
  如果开始没有剔除上面忽略的4个表,这里上面三行就不需要了。
  四,修改zabbix_server连接数据库配置文件
  grep -i DBName /usr/local/zabbix/etc/zabbix_server.conf
  #DBName=zabbix
  DBName=zabbix2
  五,修改zabbix站点zabbix.conf配置文件
  grep -i database /var/www/html/conf/zabbix.conf.php
  $DB['DATABASE'] = 'zabbix2';
  // SCHEMA is relevant only for IBM_DB2 database
  六,重启服务
  service zabbix_server restart
  service mysqld restart(不重启也可)
  

  此方法补充:
  如果想看以前的历史数据,只需要2步即可
  1,备份一份站点,修改database为老的数据库默认zabbix
  2,web浏览器打开连上老数据库的zabbix站点即可查看
  




页: [1]
查看完整版本: Zabbix历史数据处理办法