As the number of machines monitored increases over time, the amount of data stored in the database will also increase. When the amount of data reaches a certain level, the response speed will be slow. Therefore, we need to clear some historical data.
#! /Bin/bash
User = "root"
Passwd = "xxxxxx"
HIS_Date = 'date-d $ (date-d "-90 day" + % Y % m % d) + % s' # obtain the timestamp before 90 days
TRE_Date = 'date-d $ (date-d "-365 day" + % Y % m % d) + % s' # obtain the timestamp before 365 days
$ (Which mysql)-u $ {User}-p $ {Passwd}-e"
Use zabbix;
Delete from history WHERE 'Clock '<$ HIS_Date;
Optimize table history;
Delete from history_str WHERE 'Clock '<$ HIS_Date;
Optimize table history_str;
Delete from history_uint WHERE 'Clock '<$ HIS_Date;
Optimize table history_uint;
Delete from trends WHERE 'Clock '<$ TRE_Date;
Optimize table trends;
Delete from trends_uint WHERE 'Clock '<$ TRE_Date;
Optimize table trends_uint;
Delete from events WHERE 'Clock '<$ TRE_Date;
Optimize table events;
PS: history is a detailed historical data table, and trends is a graph trend table. You can set the retention time as needed.