Для поддержки большего уровня производительности при масштабировании, Zabbix поддерживает TimescaleDB, решение на основе базы данных PostgreSQL для автоматического партиционирования данных на фрагменты (chunks) на основе времени.
В настоящее время TimescaleDB не поддерживается Zabbix прокси.
Инструкции на этой странице могут быть использованы для создания базы данных TimescaleDB или для миграции с существующих таблиц PostgreSQL на TimescaleDB.
Мы предполагаем, что расширение TimescaleDB уже установлено на сервере базы данных (смотрите инструкции по установке в документации Timescale).
Расширение TimescaleDB также должно быть включено для конкретной БД, путём выполнения:
Для выполнения этой команды требуются привилегии администратора базы данных.
Если вы используете схему базы данных, отличную от 'public', вам необходимо добавить компонент SCHEMA к приведённой выше команде. Т.е.:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix
Затем выполните скрипт postgresql/timescaledb.sql
. Для новых установок скрипт должен запускаться после того, как обычная база данных PostgreSQL была создана с исходной схемой/данными (см. создание базы данных):
Пожалуйста, игнорируйте предупреждающие сообщения, информирующие о том, что вы не следуете наилучшим практикам при выполнении скрипта timescaledb.sql
на TimescaleDB версии 2.9.0 и выше. Вне зависимости от этого предупреждения, настройка будет выполнена успешно.
Миграция существующих данных истории и динамики изменений может занять много времени. Zabbix сервер и веб-интерфейс должны быть остановлены на время миграции.
Скрипт timescaledb.sql
задаёт следующие параметры процессу очистки истории (с Администрирование → Общие → Очистка истории):
Чтобы использовать очистку истории с партиционированием для истории и динамики изменений, обе эти опции должны быть активированы. Имеется возможность использования TimescaleDB партиционирования только для динамики изменений (установив настройку Переопределить период хранения динамики изменения элементов данных) или только для истории (Переопределить период хранения истории элементов данных).
Для PostgreSQL версии 10.2 или выше и TimescaleDB версии 1.5 или выше скрипт timescaledb.sql
устанавливает два дополнительных параметра:
Для успешного удаления сжатых данных процессом очистки истории, обе опции Переопределить период хранения истории элементов данных и Переопределить период хранения динамики изменения элементов данных должны быть активированы. Если переопределение отключено, а таблицы имеют сжатые фрагменты, процесс очистки истории не удалит данные из этих таблиц, а на административном экране для Очистки истории и в разделе Информация о системе будет отображено предупреждение о некорректной конфигурации.
Все эти параметры можно изменить в Администрирование → Общие → Очистка истории после установки.
Возможно, Вы захотите запустить инструмент timescaledb-tune, предоставляемый TimescaleDB, чтобы оптимизировать параметры конфигурации PostgreSQL в вашем postgresql.conf
.
Собственное сжатие TimescaleDB поддерживается, начиная с Zabbix 5.0 для PostgreSQL версии 10.2 или выше и TimescaleDB версии 1.5 или выше для всех таблиц Zabbix, которыми управляет TimescaleDB. Во время обновления или миграции на TimescaleDB первоначальное сжатие больших таблиц может занять много времени.
Обратите внимание, что сжатие поддерживается под лицензией "timescale" Timescale Community license и не поддерживается под лицензией "apache" Apache 2.0 license. Начиная с версии Zabbix 6.0.7, Zabbix проверяет, поддерживается ли сжатие. Если оно не поддерживается, в журнал сервера Zabbix выводится предупреждающее сообщение, а пользователи не могут активировать сжатие в веб-интерфейсе.
Перед использованием сжатия пользователям рекомендуется ознакомиться со сжатием в документации TimescaleDB.
Обратите внимание, что существуют определённые ограничения, налагаемые сжатием, а именно:
Настройки сжатия можно изменить в блоке Сжатие истории и трендов в разделе Администрирование → Общие → Очистка истории веб-интерфейса Zabbix.
Параметр | По умолчанию | Комментарии |
---|---|---|
Включить сжатие | Включено | Установка или снятие флажка не активирует/деактивирует сжатие немедленно. Так как сжатием занимается процесс очистки истории (housekeeper), изменения вступят в силу в течение максимум двух периодов времени, заданных в параметре HousekeepingFrequency (в файле конфигурации сервера zabbix_server.conf).После отключения сжатия новые фрагменты, попавшие в период сжатия, не будут сжиматься. Однако все ранее сжатые данные останутся сжатыми. Чтобы распаковать ранее сжатые фрагменты, следуйте инструкциям в документации TimescaleDB. При обновлении с более старых версий Zabbix с поддержкой TimescaleDB сжатие не будет включено по умолчанию. |
Compress records older than (Сжимать записи старше, чем) | 7d | Этот параметр не может быть меньше 7 дней. Из-за неизменности сжатых фрагментов все запоздавшие данные (например, данные, задержанные прокси), которые старше этого значения, будут отброшены. |