Для обеспечения большего уровня производительности при масштабировании, Zabbix поддерживает TimescaleDB — решение на основе базы данных PostgreSQL для автоматического партиционирования данных на фрагменты (chunks) на основе времени.
В настоящее время TimescaleDB не поддерживается Zabbix прокси-сервером.
Инструкции на этой странице могут быть использованы для следующих сценариев:
Предварительные условия: расширение TimescaleDB поддерживаемой версии уже установлено на сервере базы данных. Смотрите инструкции по установке в документации Timescale [en].
Включите расширение TimescaleDB для конкретной базы данных, выполнив:
Для выполнения этой команды требуются привилегии администратора базы данных.
Если вы используете схему базы данных, отличную от «public», вам необходимо добавить компонент SCHEMA к приведённой выше команде. Т.е.:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA вашасхема CASCADE;" | sudo -u postgres psql zabbix
Затем выполните скрипт postgresql/timescaledb/schema.sql
. Для новых установок скрипт должен запускаться после того, как обычная база данных PostgreSQL была создана с исходной схемой/данными (см. создание базы данных):
Пожалуйста, игнорируйте предупреждающие сообщения, информирующие о том, что вы не следуете наилучшим практикам при выполнении скрипта schema.sql
на TimescaleDB версии 2.9.0 и выше. Вне зависимости от этого предупреждения, настройка будет выполнена успешно.
Миграция существующих данных истории, динамики изменений и журналов аудита может занять много времени. Zabbix сервер и веб-интерфейс должны быть остановлены на время миграции.
Скрипт schema.sql
задаёт следующие параметры процессу очистки истории:
Чтобы использовать очистку истории с партиционированием для истории и динамики изменений, обе эти опции должны быть активированы. Также можно включить переопределение по отдельности либо для истории, либо только для динамики изменений.
скрипт postgresql/timescaledb/schema.sql
устанавливает два дополнительных параметра:
Для успешного удаления сжатых данных процессом очистки истории, обе опции Переопределить период хранения истории элементов данных (Override item history period) и Переопределить период хранения динамики изменения элементов данных (Override item trend period) должны быть активированы. Если переопределение отключено, а таблицы имеют сжатые фрагменты, процесс очистки истории не удалит данные из этих таблиц, а в разделах Очистка истории (Housekeeping) и Информация о системе (System information) будет отображено предупреждение о некорректной конфигурации.
Все эти параметры можно изменить в разделе Администрирование → Очистка истории (Administration → Housekeeping) после установки.
Возможно, вы захотите запустить инструмент timescaledb-tune, предоставляемый TimescaleDB, чтобы оптимизировать параметры конфигурации PostgreSQL в вашем файле postgresql.conf
.
При обновлении Zabbix до версии, которая включает новые гипертаблицы TimescaleDB, сервер Zabbix не настраивает их автоматически (например, при обновлении с версии Zabbix 6.4 до 7.0.3, так как в версиях 7.0.0 и 7.0.2 были добавлены новые гипертаблицы).
Чтобы настроить новые гипертаблицы TimescaleDB, выполните следующие шаги:
postgresql/timescaledb/schema.sql
; он настроит новые гипертаблицы TimescaleDB. Учтите, что с версии Zabbix 7.0.0 местоположение и название скрипта изменились с postgresql/timescaledb.sql
на postgresql/timescaledb/schema.sql
.Игнорируйте предупреждающие сообщения о том, что при запуске скрипта schema.sql
на TimescaleDB версии 2.9.0 и выше не соблюдаются лучшие практики. Независимо от этих предупреждений, конфигурация будет успешно завершена.
Собственное сжатие TimescaleDB поддерживается для всех таблиц Zabbix, которые являются гипертаблицами TimescaleDB. Во время обновления или миграции на TimescaleDB первоначальное сжатие больших таблиц может занять много времени.
Обратите внимание, что сжатие поддерживается под лицензией «timescale» Timescale Community license и не поддерживается под лицензией «apache» Apache 2.0 license. Если сжатие не поддерживается, в журнал сервера Zabbix выводится предупреждающее сообщение, а пользователи не могут активировать сжатие в веб-интерфейсе.
Перед использованием сжатия пользователям рекомендуется ознакомиться со сжатием в документации Timescale [en].
Обратите внимание, что существуют определённые ограничения, налагаемые сжатием, а именно:
Настройки сжатия можно изменить в блоке Сжатие истории, тенденций и журнала аудита в разделе Администрирование → Очистка истории веб-интерфейса Zabbix.
Параметр | По умолчанию | Комментарии |
---|---|---|
Включить сжатие (Enable compression) |
Включено | Установка или снятие флажка не активирует/деактивирует сжатие немедленно. Так как сжатием занимается процесс очистки истории (housekeeper), изменения вступят в силу в течение максимум двух периодов времени, заданных в параметре HousekeepingFrequency (в файле конфигурации сервера zabbix_server.conf).После отключения сжатия новые фрагменты, попавшие в период сжатия, не будут сжиматься. Однако все ранее сжатые данные останутся сжатыми. Чтобы распаковать ранее сжатые фрагменты, следуйте инструкциям в документации Timescale [en]. При обновлении с более старых версий Zabbix с поддержкой TimescaleDB сжатие не будет включено по умолчанию. |
Compress records older than (Сжимать записи старше, чем) |
7d | Этот параметр не может быть меньше 7 дней. Из-за неизменности сжатых фрагментов все запоздавшие данные (например, данные, задержанные прокси), которые старше этого значения, будут отброшены. |
Для повышения производительности обновления динамики изменений вы можете уменьшить параметр «chunk_time_interval» для таблиц trends
и trends_uint
с 30 дней до 7 дней или меньше в зависимости от того, сколько элементов данных используют динамику изменений. Цель этой настройки — придерживаться лучших практик TimescaleDB и гарантировать, что размер фрагмента останется в пределах доступных системных ресурсов.