[comment]: # ({6b30eb7c-98c082ce})
# 7 Einrichtung von TimescaleDB

[comment]: # ({/6b30eb7c-98c082ce})

[comment]: # ({36fb6804-acb21280})
#### Übersicht

Zabbix unterstützt TimescaleDB, eine auf PostgreSQL basierende Datenbanklösung, die Daten automatisch in zeitbasierte Chunks partitioniert, um bei Skalierung eine schnellere Leistung zu ermöglichen.

::: notewarning
Derzeit wird TimescaleDB von Zabbix Proxy nicht unterstützt.
:::

Die Anweisungen auf dieser Seite können für die folgenden Szenarien verwendet werden:

-   Erstellen einer TimescaleDB-Datenbank oder Migration von bestehenden PostgreSQL-Tabellen zu TimescaleDB (siehe [Konfiguration](#configuration)).
-   Aktualisierung eines bestehenden TimescaleDB-Datenbankschemas beim Upgrade von Zabbix (siehe [Upgrade des TimescaleDB-Schemas](#upgrading-timescaledb-schema)).

[comment]: # ({/36fb6804-acb21280})

[comment]: # ({082fb7aa-f731725c})
#### Konfiguration

**Voraussetzungen**: TimescaleDB-Erweiterung einer [unterstützten Version](/manual/installation/requirements#thirdparty-external-surrounding-software), installiert auf dem Datenbank-Server.
Installationsanweisungen finden Sie in der [TimescaleDB-Dokumentation](https://docs.tigerdata.com/self-hosted/latest/install/).

::: notewarning
Bevor Sie TimescaleDB installieren, installieren Sie eine unterstützte PostgreSQL-Version aus dem Repository von [official PostgreSQL](https://www.postgresql.org/download/).
:::

Aktivieren Sie die TimescaleDB-Erweiterung für die jeweilige Datenbank durch Ausführen von:

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

Zum Ausführen dieses Befehls sind Datenbankadministratorrechte erforderlich.

::: noteclassic
Wenn Sie ein anderes Datenbankschema als 'public' verwenden, müssen Sie dem obigen Befehl eine SCHEMA-Klausel hinzufügen.
Z. B.:<br>
`echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix`
:::

Führen Sie dann das Skript `postgresql/timescaledb/schema.sql` aus.
Bei Neuinstallationen muss das Skript ausgeführt werden, nachdem die reguläre PostgreSQL-Datenbank mit dem initialen Schema/den initialen Daten erstellt wurde (siehe [Erstellung der Datenbank](/manual/appendix/install/db_scripts)).

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

::: noteimportant
Bitte ignorieren Sie Warnmeldungen, die darauf hinweisen, dass die Best Practices beim Ausführen des Skripts `schema.sql` unter TimescaleDB Version 2.9.0 und höher nicht eingehalten werden.
Ungeachtet dieser Warnung wird die Konfiguration erfolgreich abgeschlossen.
:::

Die Migration vorhandener Verlaufs-, Trend- und Audit-Log-Daten kann sehr viel Zeit in Anspruch nehmen.
Zabbix Server und Frontend müssen für die Dauer der Migration heruntergefahren sein.

Das Skript `schema.sql` setzt die folgenden Housekeeping-Parameter:

-   Überschreiben des Verlaufszeitraums von Datenpunkten
-   Überschreiben des Trendzeitraums von Datenpunkten

Um partitioniertes Housekeeping für Verlauf und Trends zu verwenden, müssen beide Optionen aktiviert sein.
Es ist auch möglich, die Überschreibung einzeln zu aktivieren, entweder nur für den Verlauf oder nur für Trends.

Für PostgreSQL und TimescaleDB setzt das Skript `postgresql/timescaledb/schema.sql` zwei zusätzliche Parameter:

-   Komprimierung aktivieren
-   Datensätze komprimieren, die älter als 7 Tage sind

[comment]: # ({/082fb7aa-f731725c})

[comment]: # ({5c6ac2c3-60e46db2})
Um komprimierte Daten erfolgreich durch den Housekeeper zu entfernen, müssen sowohl die Optionen *Verlaufsspeicherzeitraum für Datenpunkte überschreiben* als auch *Trend-Speicherzeitraum für Datenpunkte überschreiben* aktiviert sein.
Wenn die Überschreibung deaktiviert ist und Tabellen komprimierte Chunks enthalten, entfernt der Housekeeper keine Daten aus diesen Tabellen, und in den Abschnitten [*Housekeeping*](/manual/web_interface/frontend_sections/administration/housekeeping) und [*System information*](/manual/web_interface/frontend_sections/reports/status_of_zabbix) werden Warnungen über eine fehlerhafte Konfiguration angezeigt.

[comment]: # ({/5c6ac2c3-60e46db2})

[comment]: # ({56721869-8c3a80a9})
Alle diese Parameter können nach der Installation unter *Administration* > [*Housekeeping*](/manual/web_interface/frontend_sections/administration/housekeeping) geändert werden.

::: notetip
Möglicherweise möchten Sie das von TimescaleDB bereitgestellte Tool timescaledb-tune ausführen, um die PostgreSQL-Konfigurationsparameter in Ihrer `postgresql.conf` zu optimieren.
:::

[comment]: # ({/56721869-8c3a80a9})

[comment]: # ({0bea3ea4-d6ee4f10})
##### Upgrade des TimescaleDB-Schemas

Beim Upgrade von Zabbix auf eine Version, die neue TimescaleDB-Hypertables enthält, konfiguriert der Zabbix Server diese Hypertables nicht automatisch (zum Beispiel beim Upgrade von Zabbix 6.4 auf 7.4, da die Versionen 7.0.0 und 7.0.2 neue Hypertables eingeführt haben).

Gehen Sie wie folgt vor, um neue TimescaleDB-Hypertables zu konfigurieren:

1. Starten Sie den Zabbix Server; dadurch wird die vorhandene Datenbank aktualisiert.
2. Prüfen Sie in der Server-Protokolldatei, ob das Datenbank-Upgrade abgeschlossen ist; wenn es abgeschlossen ist, stoppen Sie den Zabbix Server.
Beachten Sie, dass der Server eine Warnung protokolliert, wenn er versucht, die Komprimierung für eine Tabelle zu aktivieren, die kein Hypertable ist.
3. Führen Sie das Skript `postgresql/timescaledb/schema.sql` aus; dadurch werden die neuen TimescaleDB-Hypertables konfiguriert.
Beachten Sie, dass sich seit Zabbix 7.0.0 Speicherort und Name des Skripts von `postgresql/timescaledb.sql` in `postgresql/timescaledb/schema.sql` geändert haben.

::: noteimportant
Bitte ignorieren Sie Warnmeldungen, die darauf hinweisen, dass die Best Practices nicht eingehalten werden, wenn Sie das Skript `schema.sql` auf TimescaleDB Version 2.9.0 und höher ausführen.
Unabhängig von dieser Warnung wird die Konfiguration erfolgreich abgeschlossen.
:::

[comment]: # ({/0bea3ea4-d6ee4f10})

[comment]: # ({dc9d91b5-2012f0a6})
#### TimescaleDB-Komprimierung

Die native TimescaleDB-Komprimierung wird für alle Zabbix-Tabellen unterstützt, die TimescaleDB-Hypertabellen sind.
Während des Upgrades oder der Migration zu TimescaleDB kann die anfängliche Komprimierung großer Tabellen sehr viel Zeit in Anspruch nehmen.

Beachten Sie, dass die Komprimierung unter der Timescale-Community-Lizenz „timescale“ unterstützt wird und unter der Apache-2.0-Lizenz „apache“ nicht unterstützt wird.
Wenn Zabbix erkennt, dass die Komprimierung nicht unterstützt wird, wird eine Warnmeldung in das Zabbix-Server-Log geschrieben und Benutzer können die Komprimierung nicht im Frontend aktivieren.

::: notetip
Benutzern wird empfohlen, sich vor der Verwendung der Komprimierung mit der Komprimierung in der [TimescaleDB-Dokumentation](https://docs.tigerdata.com/use-timescale/latest/compression/) vertraut zu machen.
:::

Beachten Sie, dass es bestimmte durch die Komprimierung bedingte Einschränkungen gibt, insbesondere:

-   Änderungen an komprimierten Chunks (Inserts, Deletes, Updates) sind nicht zulässig
-   Schemaänderungen für komprimierte Tabellen sind nicht zulässig.

Die Komprimierungseinstellungen können im Block *Komprimierung von Verlauf, Trends und Audit-Log* im Abschnitt *Administration* > *Housekeeping* des Zabbix-Frontend geändert werden.

|Parameter|Standard|Kommentare|
|--|--|------|
|*Komprimierung aktivieren*|Aktiviert|Das Aktivieren oder Deaktivieren des Kontrollkästchens aktiviert/deaktiviert die Komprimierung nicht sofort. Da die Komprimierung vom Housekeeper verarbeitet wird, werden die Änderungen innerhalb von bis zu 2 × `HousekeepingFrequency` Stunden wirksam (festgelegt in [zabbix\_server.conf](/manual/appendix/config/zabbix_server))<br><br>Nach dem Deaktivieren der Komprimierung werden neue Chunks, die in den Komprimierungszeitraum fallen, nicht komprimiert. Bereits zuvor komprimierte Daten bleiben jedoch komprimiert. Um zuvor komprimierte Chunks zu dekomprimieren, folgen Sie den Anweisungen in der [TimescaleDB-Dokumentation](https://docs.tigerdata.com/use-timescale/latest/compression/).<br><br>Beim Upgrade von älteren Zabbix-Versionen mit TimescaleDB-Unterstützung wird die Komprimierung standardmäßig nicht aktiviert.|
|*Datensätze komprimieren, die älter sind als*|7d|Dieser Parameter darf nicht kleiner als 7 Tage sein.<br><br>Aufgrund der Unveränderlichkeit komprimierter Chunks werden alle verspätet eintreffenden Daten (z. B. durch einen Proxy verzögerte Daten), die älter als dieser Wert sind, verworfen.|

:::note
Für eine bessere Performance bei Trendaktualisierungen sollten Sie möglicherweise das „chunk_time_interval“ für die Tabellen `trends` und `trends_uint` von 30 Tagen auf 7 Tage oder weniger reduzieren, abhängig davon, wie viele Datenpunkte Trends verwenden.
Der Zweck dieser Einstellung besteht darin, die Best Practices von TimescaleDB einzuhalten und sicherzustellen, dass die Chunk-Größe innerhalb der im System verfügbaren Ressourcen bleibt.
:::

[comment]: # ({/dc9d91b5-2012f0a6})
