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

[comment]: # ({/7ba28cfb-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]: # ({96defbd4-f731725c})
#### Konfiguration

**Voraussetzungen**: TimescaleDB-Erweiterung einer [unterstützten Version](/manual/installation/requirements#thirdparty-external-surrounding-software), die auf dem Datenbankserver installiert ist.
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 [offiziellen PostgreSQL-](https://www.postgresql.org/download/) Repository.
:::

Aktivieren Sie die TimescaleDB-Erweiterung für die jeweilige Datenbank, indem Sie Folgendes ausführen:

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

Für die Ausführung dieses Befehls sind Administratorrechte für die Datenbank erforderlich.

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

Führen Sie anschließend 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 [Datenbankerstellung](/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 nicht eingehalten werden, während das Skript `schema.sql` auf TimescaleDB Version 2.9.0 und höher ausgeführt wird.
Unabhängig von dieser Warnung wird die Konfiguration erfolgreich abgeschlossen.
:::

Die Migration vorhandener History-, Trend- und Audit-Log-Daten kann sehr viel Zeit in Anspruch nehmen.
Server und Frontend müssen während der Migration heruntergefahren sein.

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

-   History-Zeitraum für Datenpunkte überschreiben
-   Trend-Zeitraum für Datenpunkte überschreiben

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

Das Skript `postgresql/timescaledb/schema.sql` setzt zwei zusätzliche Parameter:

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

[comment]: # ({/96defbd4-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]: # ({bfdcad2b-60c5c806})
##### TimescaleDB-Schema aktualisieren

Wenn Zabbix auf eine Version aktualisiert wird, die neue TimescaleDB-Hypertables enthält, konfiguriert der Zabbix-Server diese Hypertables nicht automatisch (zum Beispiel beim Upgrade von Zabbix 6.4 auf 7.0.3, 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-Logdatei, ob das Datenbank-Upgrade abgeschlossen ist; stoppen Sie den Zabbix-Server nach Abschluss.
   Beachten Sie, dass der Server eine Warnung protokolliert, wenn versucht wird, die Komprimierung für eine Tabelle zu aktivieren, die keine 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` mit TimescaleDB Version 2.9.0 und höher ausführen.
Unabhängig von dieser Warnung wird die Konfiguration erfolgreich abgeschlossen.
:::

[comment]: # ({/bfdcad2b-60c5c806})

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

Die native TimescaleDB-Komprimierung wird für alle Zabbix-Tabellen unterstützt, die TimescaleDB-Hypertables 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"-Lizenz der Timescale Community unterstützt wird und unter der "apache"-Lizenz Apache 2.0 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 im Frontend nicht aktivieren.

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

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

-   Änderungen an komprimierten Chunks (Einfügungen, Löschungen, Aktualisierungen) sind nicht zulässig
-   Schemaänderungen für komprimierte Tabellen sind nicht zulässig.

Die Komprimierungseinstellungen können im Block *Verlauf, Trends und Audit-Log-Komprimierung* im Abschnitt *Administration* > *Housekeeping* des Zabbix-Frontends 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-mal `HousekeepingFrequency` Stunden wirksam (gesetzt 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 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 ist 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 Leistung bei der Aktualisierung von Trends sollten Sie den Wert "chunk_time_interval" für die Tabellen `trends` und `trends_uint` je nach Anzahl der Datenpunkte, die Trends verwenden, von 30 Tagen auf 7 Tage oder weniger verringern.
Der Zweck dieser Einstellung besteht darin, die Best Practices von TimescaleDB einzuhalten und sicherzustellen, dass die Chunk-Größe innerhalb der verfügbaren Systemressourcen bleibt.
:::

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