Описание таблиц занимающие обычно больше всего места в базе данных:
- history хранит десятичные числа
- history_uint — целые
- history_str, history_text, history_log — текстовые данные
- events — всевозможные события: проблемы, внутренние события, события авторегистрации и автообнаружения
Посмотреть последние 10 таблиц в базе Mysql, занимают больше всего места:
SELECT table_name,
table_rows,
data_length,
index_length,
round(((data_length + index_length) / 1024 / 1024 / 1024),2) "Size in GB"
FROM information_schema.tables
WHERE table_schema = "zabbix"
ORDER BY round(((data_length + index_length) / 1024 / 1024 / 1024),2) DESC
LIMIT 10;
+--------------------+------------+--------------+--------------+----------+
| table_name | table_rows | data_length | index_length | Size in GB |
+--------------------+------------+--------------+--------------+----------+
| history | 5891805460 | 564957036544 | 212365344768 | 723.94 |
| trends_uint | 3568850819 | 309184282624 | 0 | 287.95 |
| history_uint | 2435751798 | 188120842240 | 74724212736 | 244.79 |
| trends | 3086152586 | 259156721664 | 0 | 241.36 |
| history_text | 42899531 | 8106672128 | 1563082752 | 9.01 |
| history_str | 6972599 | 633356288 | 263454720 | 0.84 |
| items | 976645 | 312311808 | 227213312 | 0.50 |
| alerts | 164940 | 477102080 | 34717696 | 0.48 |
| auditlog | 3260080 | 235945984 | 158466048 | 0.37 |
| items_applications | 1138278 | 86507520 | 85868544 | 0.16 |
+--------------------+------------+--------------+--------------+----------+
10 rows in set (0.004 sec)
Таблички занимающие много места мы определили. Создаем скрипт:
# mcedit /opt/clean_zabbix.sh
Вставляем следующие содержимое:
#!/bin/bash
User="zabbix"
Passwd="PASSWORDZabbix"
Date=`date -d $(date -d "-31 day" +%Y%m%d) +%s`
mysql -u${User} -p${Passwd} -e "
use zabbix;
DELETE FROM events WHERE 'clock' < $Date;
optimize table events;
DELETE FROM trends_uint WHERE 'clock' < $Date;
optimize table trends_uint;
DELETE FROM history WHERE 'clock' < $Date;
optimize table history;"
Сохраняем и делаем файл исполняемым:
# chmod +x /opt/clean_zabbix.sh
Запускаем скрипт.