#5 TijdschaalDB-configuratie
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:
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):
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:
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:
When upgrading Zabbix to a version that contains new TimescaleDB hypertables, Zabbix server does not automatically configure those hypertables (for example, when upgrading from Zabbix 6.4 to 7.2, as versions 7.0.0 and 7.0.2 have introduced new hypertables).
To configure new TimescaleDB hypertables, follow these steps:
postgresql/timescaledb/schema.sql
script; this configures the new TimescaleDB hypertables. Note that, since Zabbix 7.0.0, the script's location and name have changed from postgresql/timescaledb.sql
to postgresql/timescaledb/schema.sql
.Please ignore warning messages informing that the best practices are not followed while running schema.sql
script on TimescaleDB version 2.9.0 and higher. Regardless of this warning, the configuration will be completed successfully.
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 Administration → Housekeeping.
Je kunt de timescaledb-tune tool gebruiken die wordt geleverd door TimescaleDB om de PostgreSQL-configuratieparameters in je postgresql.conf
te optimaliseren.
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:
Compressie-instellingen kunnen worden gewijzigd in het blok Geschiedenis- en trendcompressie in de sectie Administratie → Housekeeping 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. |