Настройка Housekeeper в Zabbix: как работают параметры удаления строк

    При администрировании Zabbix-сервера часто возникает вопрос о поведении параметров HousekeepingFrequency и HousekeeperDelete. Разберём их точное влияние на процесс очистки базы данных (БД).

    Что такое Housekeeper в Zabbix?

    Housekeeper - это встроенный механизм Zabbix, отвечающий за удаление устаревших данных (истории, трендов, событий) из базы данных, чтобы предотвратить её переполнение и сохранить производительность сервера мониторинга.

    Как работают параметры HousekeepingFrequency и HousekeeperDelete?

    Параметр HousekeepingFrequency=1 задаёт интервал запуска задачи очистки - 1 час. Это означает, что каждый час Housekeeper активируется и пытается удалить данные.

    Параметр HousekeeperDelete=1000000 - это максимальное количество строк, которое может быть удалено за один цикл (за один запуск) по каждой таблице отдельно. То есть, если в Zabbix есть таблицы history, history_uint, trends и другие, то Housekeeper удалит до 1 миллиона строк из каждой такой таблицы за один часовой запуск. Это не общий лимит на всю базу данных, а именно пакетное ограничение на таблицу.

    Пример работы Housekeeper

    Предположим, в БД есть три таблицы с устаревшими данными: history (2 млн строк), history_uint (3 млн строк) и trends (500 тыс. строк). При запуске Housekeeper с параметром HousekeeperDelete=1000000:

    • Из history будет удалено 1 млн строк (остаток - 1 млн).
    • Из history_uint - 1 млн строк (остаток - 2 млн).
    • Из trends - все 500 тыс. строк (так как лимит не превышен).

    Всего за один цикл будет удалено 2,5 млн строк, но лимит применяется к каждой таблице независимо. Если бы параметр был общим, удалилось бы только 1 млн строк суммарно.

    Что будет, если данных больше, чем лимит?

    Housekeeper не удалит больше указанного количества строк за один запуск. Оставшиеся устаревшие данные будут обработаны в следующем цикле (через час). Таким образом, параметр HousekeeperDelete защищает БД от слишком интенсивной нагрузки при массовом удалении.

    Рекомендации по настройке

    Для крупных инсталляций Zabbix с высокой интенсивностью сбора данных (более 10 000 новых записей в секунду) увеличьте HousekeeperDelete до 5-10 миллионов, чтобы Housekeeper успевал очищать БД за отведённое время. Однако следите за производительностью дисков - слишком высокие значения могут вызвать блокировки таблиц на время удаления.

    Часто задаваемые вопросы