zabbix自动清理30天前的数据

    技术2022-07-11  87

    #!/bin/bash User="xxxx" Passwd="xxxx" Date=`date -d $(date -d "-30 day" +%Y%m%d) +%s` #取30天之前的时间戳 $(which mysql) -u${User} -p${Passwd} -e " use zabbix; DELETE FROM history WHERE 'clock' < $Date; optimize table history; DELETE FROM history_str WHERE 'clock' < $Date; optimize table history_str; DELETE FROM history_uint WHERE 'clock' < $Date; optimize table history_uint; DELETE FROM trends WHERE 'clock' < $Date; optimize table trends; DELETE FROM trends_uint WHERE 'clock' < $Date; optimize table trends_uint; DELETE FROM events WHERE 'clock' < $Date; optimize table events; "

    其中histroy是详细的历史数据,trends是图表趋势数据。一般情况下,根据我的自定义,会将histroy数据保留7天,trend数据保留365天。

    方法二:不保留历史数据快速 一,备份除历史数据的数据库表 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(不重启也可)

     

    Processed: 0.010, SQL: 9