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 yourschema 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/schema.sql поставља два додатна параметра:

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

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

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

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

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

Приликом надоградње Zabbix-а на верзију која садржи нове TimescaleDB хипертабеле, Zabbix сервер не конфигурише аутоматски те хипертабеле (на пример, приликом надоградње са Zabbix-а 6.4 на 7.0.3, пошто су верзије 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 сервера и корисници не могу омогућити компресију у корисничком интерфејсу.

Корисницима се препоручује да се упознају са компресијом у документацији Timescale пре употребе компресије.

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

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

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

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

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

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

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

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

To toggle search highlight, press Ctrl+Alt+H
Have an improvement suggestion for this page? Select the text that could be improved and press Ctrl+Enter to send it to the editors.