Table of Contents

#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 beheerdersrechten voor de database.

Als je een databaseschema gebruikt dat anders is dan 'public', moet je 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 database/postgresql. Voor nieuwe installaties moet het script worden uitgevoerd nadat de reguliere PostgreSQL-database is gemaakt met het initiële schema/data (zie database creatie):

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

Negeer waarschuwingsberichten die aangeven dat de best practices niet worden gevolgd bij het uitvoeren van het timescaledb.sql script op TimescaleDB-versie 2.9.0 en hoger. Ondanks deze waarschuwing zal de configuratie met succes worden voltooid.

De migratie van bestaande historische en trendgegevens kan veel tijd in beslag nemen. De Zabbix-server en frontend moeten gedurende de migratieperiode worden uitgeschakeld.

Het timescaledb.sql script stelt de volgende onderhoudsparameters in:

  • Overschrijf periode van itemgeschiedenis
  • Overschrijf periode van itemtrend

Om partitioned housekeeping te gebruiken voor geschiedenis en trends, moeten beide opties zijn ingeschakeld. Het is ook mogelijk om overschrijving individueel in te schakelen, 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 aanvullende parameters in:

  • Compressie inschakelen
  • Records ouder dan 7 dagen comprimeren

Om gecomprimeerde gegevens succesvol door de housekeeper te laten verwijderen, moeten zowel de opties Override item history period als Override item trend period zijn ingeschakeld. Als overschrijving is uitgeschakeld en tabellen gecomprimeerde chunks hebben, zal de housekeeper geen gegevens uit deze tabellen verwijderen en worden waarschuwingen weergegeven over onjuiste configuratie in de Housekeeping en System information secties.

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

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

TimescaleDB-compressie

Vanaf Zabbix 5.0 wordt native TimescaleDB-compressie ondersteund 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 kan de initiële compressie van de grote tabellen veel tijd in beslag nemen.

Houd er rekening mee dat compressie wordt ondersteund onder de "timescale" Timescale Community-licentie en niet wordt ondersteund onder de "apache" Apache 2.0-licentie. Als Zabbix detecteert dat compressie niet wordt ondersteund, wordt er een waarschuwingsbericht in het Zabbix-serverlogboek geschreven en kunnen gebruikers compressie niet inschakelen in de frontend.

Gebruikers worden aangemoedigd om vertrouwd te raken met de TimescaleDB compressiedocumentatie voordat ze compressie gaan gebruiken.

Merk op dat er bepaalde beperkingen zijn opgelegd door compressie, namelijk:

  • Wijzigingen aan gecomprimeerde gegevenschunks (invoegen, verwijderen, bijwerken) zijn niet toegestaan.
  • Schemawijzigingen voor gecomprimeerde tabellen zijn niet toegestaan.

Compressie-instellingen kunnen worden gewijzigd in het blok Geschiedenis- en trendcompressie in de sectie AdministratieHousekeeping van de Zabbix-frontend.

Parameter Standaard Opmerkingen
Compressie inschakelen Ingeschakeld Het aanvinken of uitschakelen van het selectievakje activeert/deactiveert compressie niet onmiddellijk. Omdat compressie wordt afgehandeld door de Housekeeper, worden de wijzigingen binnen maximaal 2 keer de waarde van HousekeepingFrequency uur van kracht (ingesteld in zabbix_server.conf)

Na het uitschakelen van compressie worden nieuwe chunks die binnen 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, wordt compressie niet standaard ingeschakeld.
Gegevens comprimeren ouder dan 7d Deze parameter kan niet minder dan 7 dagen zijn.

Vanwege de onveranderlijkheid van gecomprimeerde chunks worden alle late gegevens (bijvoorbeeld gegevens vertraagd door een proxy) die ouder zijn dan deze waarde, verwijderd.