This is a translation of the original English documentation page. Help us make it better.

6 TimescaleDB подешавање

Преглед

Zabbix подржава TimescaleDB, PostgreSQL-базирано решење за базу података које аутоматски партиционише податке на временски засноване делове ради подршке бржим перформансама у великим размерама.

Тренутно, Zabbix прокси не подржава TimescaleDB.

Упутства на овој страници могу се користити за следеће сценарије:

  • Креирање TimescaleDB базе података или миграција са постојећих PostgreSQL табела на TimescaleDB (погледајте Конфигурација).
  • Надоградња постојеће шеме базе података TimescaleDB приликом надоградње Zabbix-а (погледајте Надоградња TimescaleDB шеме).

Конфигурација

Предуслови: TimescaleDB екстензија подржане верзије инсталирана на серверу базе података. За упутства за инсталацију, погледајте Timescale документацију).

Омогућите TimescaleDB екстензију за одређену базу података извршавањем:

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

Покретање ове команде захтева привилегије администратора базе података.

Ако користите шему базе података која није 'public', потребно је да додате SCHEMA клаузулу горњој команди. Нпр.:`echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA ваша шема CASCADE;" | sudo -u postgres psql zabbix`

Затим покрените скрипту postgresql/timescaledb/schema.sql. За нове инсталације, скрипта мора бити покренута након што је креирана регуларна PostgreSQL база података са почетном шемом/подацима (погледајте креирање базе података).

cat /usr/share/zabbix/sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix

Молимо вас да игноришете упозорења која обавештавају да се најбоље праксе не поштују приликом покретања скрипте schema.sql на TimescaleDB верзији 2.9.0 и новијим.Без обзира на ово упозорење, конфигурација ће бити успешно завршена.

Миграција постојеће историје, трендова и података дневника ревизије може потрајати доста времена.Zabbix сервер и фронтенд морају бити у квару током периода миграције.

Скрипта schema.sql поставља следеће параметре одржавања:

  • Надмени период историје ставки
  • Надмени период тренда ставки

Да бисте користили партиционисано одржавање за историју и трендове, обе ове опције морају бити омогућене. Такође је могуће омогућити надјачавање појединачно, било само за историју или само за трендове.

За PostgreSQL и TimescaleDB, скрипта postgresql/timescaledb/schema.sql поставља два додатна параметра:

  • Омогући компресију
  • Компримуј записе старије од 7 дана

Да би housekeeper успешно уклонио компримоване податке, морају бити омогућене опције Замени период историје ставки и Замени период тренда ставки. Ако је замена онемогућена и табеле имају компримоване делове, housekeeper неће уклонити податке из ових табела, а упозорења о нетачној конфигурацији ће бити приказана у одељцима Housekeeping и System information.

Сви ови параметри се могу променити у АдминистрацијаHousekeeping након инсталације.

Можда ћете желети да покренете timescaledb-tune алат обезбеђен од стране TimescaleDB да бисте оптимизовали конфигурационе параметре PostgreSQL у вашем postgresql.conf.

Надоградња TimescaleDB шеме

Приликом надоградње Zabbix-а на верзију која садржи нове TimescaleDB хипертабеле, Zabbix сервер не конфигурише аутоматски те хипертабеле (на пример, приликом надоградње са Zabbix-а 6.4 на 7.2, јер су верзије 7.0.0 и 7.0.2 увеле нове хипертабеле).

Да бисте конфигурисали нове TimescaleDB хипертабеле, пратите ове кораке:

  1. Покрените Zabbix сервер; ово надограђује постојећу базу података.
  2. Проверите датотеку дневника сервера да ли је надоградња базе података завршена; када се заврши, зауставите Zabbix сервер. Имајте на уму да сервер евидентира упозорење ако покуша да омогући компресију за табелу која није хипертабела.
  3. Покрените скрипту postgresql/timescaledb/schema.sql; ово конфигурише нове TimescaleDB хипертабеле. Имајте на уму да су, од Zabbix-а 7.0.0, локација и име скрипте промењени из postgresql/timescaledb.sql у postgresql/timescaledb/schema.sql.

Молимо вас да игноришете упозорења која обавештавају да се најбоље праксе не поштују приликом покретања скрипте schema.sql на TimescaleDB верзији 2.9.0 и новијим. Без обзира на ово упозорење, конфигурација ће бити успешно завршена.

Компресија TimescaleDB-а

Нативна компресија TimescaleDB-а је подржана за све Zabbix табеле које су TimescaleDB хипертабеле. Током надоградње или миграције на TimescaleDB, почетна компресија великих табела може потрајати доста времена.

Имајте на уму да је компресија подржана под лиценцом „timescale“ Timescale Community и није подржана под лиценцом „apache“ Apache 2.0. Ако Zabbix открије да компресија није подржана, у лог Zabbix сервера се уписује порука упозорења и корисници не могу омогућити компресију у фронтенду.

Корисницима се препоручује да се упознају са TimescaleDB документацијом о компресији пре коришћења компресије.

Имајте на уму да постоје одређена ограничења која намеће компресија, конкретно:

  • Модификације компресованих блокова (уметање, брисање, ажурирање) нису дозвољене
  • Промене шеме за компримоване табеле нису дозвољене.

Подешавања компресије могу се променити у блоку Историја и трендови компресије у одељку АдминистрацијаДомаћинство на Zabbix фронтенду.

Parameter Default Comments
Enable compression Омогућено Означавање или уклањање ознаке из поља за потврду не активира/деактивира компресију одмах. Пошто компресијом управља Домаћин, промене ће ступити на снагу за највише 2 сата већа од HousekeepingFrequency (подешено у zabbix_server.conf)

Након онемогућавања компресије, нови делови који спадају у период компресије неће бити компресовани. Међутим, сви претходно компресовани подаци ће остати компримовани. Да бисте декомпримирали претходно компресоване делове, пратите упутства у документацији TimescaleDB.

Приликом надоградње са старијих верзија Zabbix-а са подршком за TimescaleDB, компресија неће бити подразумевано омогућена.
Compress records older than 7d Овај параметар не може бити мањи од 7 дана.

Због непроменљивости компресованих делова, сви закаснели подаци (нпр. подаци које је одложио прокси) који су старији од ове вредности биће одбачени.

За боље перформансе ажурирања трендова, можда ћете желети да смањите „chunk_time_interval“ за табеле trends и trends_uint са 30 дана на 7 дана или мање, у зависности од тога колико ставки користи трендове. Сврха овог подешавања је да се придржава најбољих пракси TimescaleDB-а и да се осигура да величина блока остане у оквиру доступних ресурса система.