#5 TijdschaalDB-configuratie

Overzicht

Zabbix ondersteunt TimescaleDB, een op PostgreSQL gebaseerde database-oplossing van automatisch partitioneren van gegevens in op tijd gebaseerde brokken om sneller te ondersteunen prestatie op schaal.

Momenteel wordt TimescaleDB niet ondersteund door Zabbix proxy.

De instructies op deze pagina kunnen worden gebruikt voor het maken van een TimescaleDB-database of migreren van bestaande PostgreSQL-tabellen naar TimescaleDB.

We gaan ervan uit dat de TimescaleDB-extensie al is geïnstalleerd op de databaseserver (zie installatie-instructies).

De TimescaleDB-extensie moet ook worden ingeschakeld voor de specifieke database door het volgende uit te voeren:

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

Het uitvoeren van dit commando vereist beheerdersprivileges voor de database.

Als u een databaseschema gebruikt dat afwijkt van 'public', moet u een SCHEMA-clausule toevoegen aan het bovenstaande commando. Bijvoorbeeld:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix

Voer vervolgens het timescaledb.sql script uit dat zich bevindt in de map database/postgresql. Voor nieuwe installaties moet het script worden uitgevoerd nadat de reguliere PostgreSQL-database is aangemaakt met het initiële schema/gegevens (zie database-creatie):

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

Negeer waarschuwingsberichten die aangeven dat de beste praktijken niet worden gevolgd bij het uitvoeren van het timescaledb.sql script in TimescaleDB-versie 2.9.0 en hoger. Ondanks deze waarschuwing zal de configuratie succesvol worden voltooid.

De migratie van bestaande geschiedenis- en trendgegevens kan veel tijd in beslag nemen. Zowel de Zabbix-server als de frontend moeten tijdens de migratieperiode zijn uitgeschakeld.

Het timescaledb.sql script stelt de volgende opruimparameters in:

  • Overschrijf de periode voor itemgeschiedenis
  • Overschrijf de periode voor itemtrends

Om partitiegebonden opruiming voor geschiedenis en trends te gebruiken, moeten beide opties zijn ingeschakeld. Het is ook mogelijk om het overschrijven individueel in te schakelen, of alleen voor geschiedenis of alleen voor trends.

Voor PostgreSQL-versie 10.2 of hoger en TimescaleDB-versie 1.5 of hoger stelt het timescaledb.sql script twee extra parameters in:

  • Compressie inschakelen
  • Records comprimeren die ouder zijn dan 7 dagen

Om gecomprimeerde gegevens succesvol door de opruimer te laten verwijderen, moeten zowel de optie Overschrijf periode van itemgeschiedenis als de optie Overschrijf periode van itemtrends zijn ingeschakeld.

Als de overschrijving is uitgeschakeld en de tabellen gecomprimeerde segmenten hebben, zal de opruimer geen gegevens uit deze tabellen verwijderen. Er zullen waarschuwingen worden weergegeven over een onjuiste configuratie in het administratiescherm voor Opruimen en in het gedeelte Systeeminformatie.

Al deze parameters kunnen worden gewijzigd in AdministratieAlgemeenOpruimen na de installatie.

Je kunt de tool timescaledb-tune gebruiken die wordt geleverd door TimescaleDB om PostgreSQL-configuratieparameters in je postgresql.conf te optimaliseren.

TijdschaalDB-compressie

Native TimescaleDB-compressie wordt ondersteund vanaf Zabbix 5.0 voor PostgreSQL versie 10.2 of hoger en TimescaleDB versie 1.5 of hoger voor alle Zabbix-tabellen die worden beheerd door TimescaleDB. Tijdens de upgrade of migratie naar TimescaleDB, initiële compressie van de grote tafels kunnen veel tijd in beslag nemen.

Merk op dat compressie wordt ondersteund onder de "timescale" Timescale Community-licentie en het wordt niet ondersteund onder de "apache" Apache 2.0-licentie. Beginnend met Zabbix 6.0.7, Zabbix detecteert of compressie wordt ondersteund. Als het niet wordt ondersteund a waarschuwingsbericht wordt in het Zabbix-serverlogboek geschreven en gebruikers kunnen dit niet inschakelen compressie in de voorkant.

Gebruikers worden aangemoedigd om vertrouwd te raken met TimescaleDB compressiedocumentatie voordat u compressie gebruikt.

Merk op dat er bepaalde beperkingen zijn die worden opgelegd door compressie, specifiek:

  • Gecomprimeerde chunk-modificaties (inserts, deletes, updates) zijn niet toegestaan
  • Schemawijzigingen voor gecomprimeerde tabellen zijn niet toegestaan.

Compressie-instellingen kunnen worden gewijzigd in de Geschiedenis en trends compressie blok in AdministratieAlgemeenHuishouding gedeelte van de Zabbix-frontend.

Parameter Standaard Opmerkingen
Compressie inschakelen Ingeschakeld Het aan- of uitvinken van het selectievakje activeert/deactiveert de compressie niet onmiddellijk. Omdat compressie wordt afgehandeld door de huishoudster, worden de wijzigingen van kracht na maximaal 2 keer HousekeepingFrequency-uren (ingesteld in zabbix_server.conf)

Na als u compressie uitschakelt, worden nieuwe chunks die in de compressieperiode vallen niet gecomprimeerd. Alle eerder gecomprimeerde gegevens blijven echter gecomprimeerd. Om eerder gecomprimeerde chunks te decomprimeren, volgt u de instructies in de TimescaleDB documentatie.

Bij het upgraden van oudere versies van Zabbix met TimescaleDB-ondersteuning, compressie is standaard niet ingeschakeld.
Records comprimeren ouder dan 7d Deze parameter mag niet korter zijn dan 7 dagen.

Vanwege de onveranderlijkheid van gecomprimeerde chunks zullen alle late gegevens (bijv. gegevens vertraagd door een proxy) die ouder zijn dan deze waarde zijn weggegooid.