6 TimescaleDB iestatīšana
Pārskats
Zabbix atbalsta TimescaleDB — uz PostgreSQL balstītu datubāzes risinājumu, kas automātiski sadala datus laika intervālos balstītos gabalos, lai nodrošinātu ātrāku veiktspēju lielā mērogā.
Pašlaik TimescaleDB netiek atbalstīts Zabbix starpniekserverī.
Šajā lapā sniegtās instrukcijas var izmantot šādos scenārijos:
- TimescaleDB datubāzes izveidei vai migrēšanai no esošajām PostgreSQL tabulām uz TimescaleDB (skatiet Konfigurācija).
- Esošās TimescaleDB datubāzes shēmas jaunināšanai, ja tiek jaunināts Zabbix (skatiet TimescaleDB shēmas jaunināšana).
Konfigurācija
Priekšnosacījumi: datubāzes serverī ir instalēts atbalstītas versijas TimescaleDB paplašinājums. Instalēšanas norādījumus skatiet TimescaleDB dokumentācijā.
Pirms TimescaleDB instalēšanas instalējiet atbalstītu PostgreSQL laidienu no oficiālā PostgreSQL repozitorija.
Iespējojiet TimescaleDB paplašinājumu konkrētajai datubāzei, izpildot:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
Šīs komandas izpildei ir nepieciešamas datubāzes administratora tiesības.
Ja izmantojat datubāzes shēmu, kas nav 'public', iepriekš minētajai komandai jāpievieno klauzula SCHEMA.
Piem.:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix
Pēc tam palaidiet skriptu postgresql/timescaledb/schema.sql.
Jaunām instalācijām skripts jāpalaiž pēc tam, kad parastā PostgreSQL datubāze ir izveidota ar sākotnējo shēmu/datiem (skatiet datubāzes izveide).
cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix
Lūdzu, ignorējiet brīdinājuma ziņojumus, kas informē, ka, palaižot skriptu schema.sql TimescaleDB versijā 2.9.0 un jaunākās, netiek ievērotas labākās prakses.
Neraugoties uz šo brīdinājumu, konfigurācija tiks veiksmīgi pabeigta.
Esošo vēstures, tendenču un audita žurnāla datu migrācija var aizņemt daudz laika. Migrācijas laikā Zabbix serverim un lietotāja saskarnei jābūt apturētiem.
Skripts schema.sql iestata šādus apkopes parametrus:
- Ignorēt vienuma vēstures periodu
- Ignorēt vienuma tendenču periodu
Lai izmantotu sadalītu apkopes mehānismu vēsturei un tendencēm, abām šīm opcijām jābūt iespējotām. Ir iespējams arī iespējot ignorēšanu atsevišķi tikai vēsturei vai tikai tendencēm.
Skripts postgresql/timescaledb/schema.sql iestata divus papildu parametrus:
- Iespējot saspiešanu
- Saspiest ierakstus, kas vecāki par 7 dienām
Lai housekeeper veiksmīgi noņemtu saspiestos datus, jābūt iespējotām abām opcijām — Override item history period un Override item trend period. Ja pārrakstīšana ir atspējota un tabulās ir saspiesti gabali, housekeeper nenoņems datus no šīm tabulām, un sadaļās Housekeeping un System information tiks parādīti brīdinājumi par nepareizu konfigurāciju.
Visus šos parametrus pēc instalēšanas var mainīt sadaļā Administrēšana > Housekeeping.
Iespējams, vēlēsieties palaist TimescaleDB nodrošināto rīku timescaledb-tune, lai optimizētu PostgreSQL konfigurācijas parametrus savā postgresql.conf.
TimescaleDB shēmas jaunināšana
Ja, jauninot Zabbix uz versiju, kurā ir jaunas TimescaleDB hypertables, Zabbix serveris šīs hypertables nekonfigurē automātiski (piemēram, ja jaunināt no Zabbix 6.4 uz 7.0.3, jo versijās 7.0.0 un 7.0.2 ir ieviestas jaunas hypertables).
Lai konfigurētu jaunās TimescaleDB hypertables, veiciet šādas darbības:
- Startējiet Zabbix serveri; tas jauninās esošo datubāzi.
- Pārbaudiet servera žurnālfailu, lai pārliecinātos, ka datubāzes jaunināšana ir pabeigta; pēc pabeigšanas apturiet Zabbix serveri. Ņemiet vērā, ka serveris reģistrē brīdinājumu, ja tas mēģina iespējot saspiešanu tabulai, kas nav hypertable.
- Palaidiet
postgresql/timescaledb/schema.sqlskriptu; tas konfigurēs jaunās TimescaleDB hypertables. Ņemiet vērā, ka kopš Zabbix 7.0.0 skripta atrašanās vieta un nosaukums ir mainīti nopostgresql/timescaledb.sqluzpostgresql/timescaledb/schema.sql.
Lūdzu, ignorējiet brīdinājuma ziņojumus, kas informē, ka, palaižot schema.sql skriptu TimescaleDB versijā 2.9.0 un jaunākās versijās, netiek ievērotas labākās prakses.
Neraugoties uz šo brīdinājumu, konfigurēšana tiks veiksmīgi pabeigta.
TimescaleDB saspiešana
TimescaleDB iebūvētā saspiešana tiek atbalstīta visām Zabbix tabulām, kas ir TimescaleDB hypertables. Jaunināšanas vai migrācijas uz TimescaleDB laikā lielo tabulu sākotnējā saspiešana var aizņemt daudz laika.
Ņemiet vērā, ka saspiešana tiek atbalstīta ar "timescale" Timescale Community licenci un netiek atbalstīta ar "apache" Apache 2.0 licenci. Ja Zabbix konstatē, ka saspiešana netiek atbalstīta, Zabbix serveris žurnālā tiek ierakstīts brīdinājuma ziņojums, un lietotāji nevar iespējot saspiešanu lietotāja saskarnē.
Pirms saspiešanas lietošanas lietotājiem ieteicams iepazīties ar saspiešanu TimescaleDB dokumentācijā.
Ņemiet vērā, ka saspiešana paredz noteiktus ierobežojumus, konkrēti:
- Saspiesto chunk modifikācijas (ievietošana, dzēšana, atjaunināšana) nav atļautas
- Shēmas izmaiņas saspiestām tabulām nav atļautas.
Saspiešanas iestatījumus var mainīt blokā Vēstures, tendenču un audita žurnāla saspiešana sadaļā Administrēšana > Apkope Zabbix lietotāja saskarnē.
| Parametrs | Noklusējums | Komentāri |
|---|---|---|
| Iespējot saspiešanu | Iespējots | Atzīmējot vai noņemot atzīmi izvēles rūtiņā, saspiešana netiek aktivizēta/deaktivizēta nekavējoties. Tā kā saspiešanu apstrādā Housekeeper, izmaiņas stāsies spēkā līdz pat 2 reizēm HousekeepingFrequency stundu laikā (iestatīts zabbix_server.conf)Pēc saspiešanas atspējošanas jauni chunk, kas nonāk saspiešanas periodā, netiks saspiesti. Tomēr visi iepriekš saspiestie dati paliks saspiesti. Lai atspiestu iepriekš saspiestus chunk, izpildiet norādījumus TimescaleDB dokumentācijā. Ja veicat jaunināšanu no vecākām Zabbix versijām ar TimescaleDB atbalstu, saspiešana pēc noklusējuma nebūs iespējota. |
| Saspiest ierakstus, kas vecāki par | 7d | Šis parametrs nevar būt mazāks par 7 dienām. Neizmaināmu saspiesto chunk dēļ visi novēloti dati (piem., dati, ko aizkavējis starpniekserveris), kas ir vecāki par šo vērtību, tiks noraidīti. |
:::note
Lai uzlabotu tendenču atjaunināšanas veiktspēju, varat samazināt "chunk_time_interval" parametru tabulām trends un trends_uint no 30 dienām līdz 7 dienām vai mazāk, atkarībā no tā, cik daudz vienumu izmanto tendences.
Šī iestatījuma mērķis ir ievērot TimescaleDB labāko praksi un nodrošināt, ka chunk lielums paliek sistēmas pieejamo resursu robežās.
:::