Zabbix поддерживает TimescaleDB - решение на основе PostgreSQL, которое автоматически разделяет данные на временные сегменты для обеспечения более высокой производительности при масштабировании.
В настоящее время 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
устанавливает следующие параметры очистки истории:
Для использования разделенной очистки истории для данных и трендов оба эти параметра должны быть включены. Также можно включить переопределение отдельно — только для истории или только для трендов.
Для 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 Community "timescale" и не поддерживается под лицензией Apache 2.0 "apache". Если Zabbix обнаруживает, что сжатие не поддерживается, в журнал сервера Zabbix записывается предупреждающее сообщение, и пользователи не могут включить сжатие через интерфейс.
Пользователям рекомендуется ознакомиться с документацией Timescale по сжатию перед использованием этой функции.
Имейте в виду, что сжатие накладывает определенные ограничения, в частности:
Настройки сжатия можно изменить в блоке Сжатие истории и трендов в разделе Администрирование → Очистка истории на интерфейсе Zabbix.
Параметр | Значение по умолчанию | Комментарии |
---|---|---|
Включить сжатие | Включено | Установка или снятие флажка не активирует/деактивирует сжатие немедленно. Поскольку сжатие выполняется службой очистки, изменения вступят в силу в течение времени до 2 * HousekeepingFrequency часов (устанавливается в zabbix_server.conf).После отключения сжатия новые сегменты, которые попадают в период сжатия, не будут сжиматься. Однако все ранее сжатые данные останутся сжатыми. Чтобы распаковать ранее сжатые сегменты, следуйте инструкциям в документации Timescale. При обновлении с более старых версий Zabbix с поддержкой TimescaleDB, сжатие не будет включено по умолчанию. |
Сжимать записи старше | 7 дней | Этот параметр не может быть менее 7 дней. Из-за неизменяемости сжатых сегментов все запоздалые данные (например, данные, задержанные прокси), которые старше указанного значения, будут отброшены. |