This is a translation of the original English documentation page. Help us make it better.

5 Configuration TimescaleDB

Aperçu

Zabbix prend en charge TimescaleDB, une solution de base de données basée sur PostgreSQL qui partitionne automatiquement les données en blocs temporels pour prendre en charge des performances plus rapides à grande échelle.

Actuellement, TimescaleDB n'est pas pris en charge par le proxy Zabbix.

Les instructions sur cette page peuvent être utilisées pour créer une base de données TimescaleDB ou migrer des tables PostgreSQL existantes vers TimescaleDB.

Configuration

Nous supposons que l'extension TimescaleDB a déjà été installée sur le serveur de base de données (voir les instructions d'installation).

L'extension TimescaleDB doit également être activée pour la base de données spécifique en exécutant :

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

L'exécution de cette commande nécessite des privilèges d'administrateur de base de données.

Si vous utilisez un schéma de base de données autre que 'public', vous devez ajouter une clause SCHEMA à la commande ci-dessus. Par exemple.:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix

Exécutez ensuite le script timescaledb.sql situé dans database/postgresql. Pour les nouvelles installations, le script doit être exécuté après la création de la base de données PostgreSQL standard avec le schéma/les données initiaux (voir la création de la base de données) :

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

Veuillez ignorer les messages d'avertissement informant que les meilleures pratiques ne sont pas suivies lors de l'exécution du script timescaledb.sql sur TimescaleDB version 2.9.0 et supérieure. Indépendamment de cet avertissement, la configuration sera terminée avec succès.

La migration des données d'historique et de tendance existantes peut prendre beaucoup de temps. Le serveur et l'interface Zabbix doivent être arrêtés pendant la période de migration.

Le script timescaledb.sql définit les paramètres de nettoyage suivants :

  • Remplacer la période d'historique des éléments
  • Remplacer la période de tendance de l'élément

Afin d'utiliser le nettoyage partitionné pour l'historique et les tendances, ces deux options doivent être activées. Il est également possible d'activer le remplacement individuellement soit pour l'historique uniquement, soit pour les tendances uniquement.

Pour PostgreSQL version 10.2 ou supérieure et TimescaleDB version 1.5 ou supérieure, le script timescaledb.sql définit deux paramètres supplémentaires :

  • Activer la compression
  • Compresser les enregistrements de plus de 7 jours

La compression ne peut être utilisée que si les options Remplacer la période de l'historique de l'élément et Remplacer la période de tendance de l'élément sont activées. Si le remplacement est désactivé et que les tables ont des blocs compressés, le nettoyage ne supprimera pas les données de ces tables et des avertissements concernant une configuration incorrecte seront affichés dans l'écran d'administration pour le Nettoyage et dans la section Information système.

Tous ces paramètres peuvent être modifiés dans AdministrationGénéralNettoyage après l'installation.

Vous pouvez exécuter l'outil timescaledb-tune fourni par TimescaleDB pour optimiser les paramètres de configuration de PostgreSQL dans votre postgresql.conf.

Compression TimescaleDB

La compression native TimescaleDB est prise en charge à partir de Zabbix 5.0 pour PostgreSQL version 10.2 ou supérieure et TimescaleDB version 1.5 ou supérieure pour toutes les tables Zabbix gérées par TimescaleDB. Lors de la mise à niveau ou de la migration vers TimescaleDB, la compression initiale des grandes tables peut prendre beaucoup de temps.

Notez que la compression est prise en charge sous la licence "timescale" Timescale Community et qu'elle n'est pas prise en charge sous la licence "apache" Apache 2.0. À partir de Zabbix 6.0.7, Zabbix détecte si la compression est prise en charge. S'il n'est pas pris en charge, un message d'avertissement est écrit dans le journal du serveur Zabbix et les utilisateurs ne peuvent pas activer la compression dans l'interface.

Les utilisateurs sont encouragés à se familiariser avec la documentation de la compression TimescaleDB avant d'utiliser la compression.

Notez qu'il existe certaines limitations imposées par la compression, en particulier :

  • Les modifications de blocs compressés (insertions, suppressions, mises à jour) ne sont pas autorisées
  • Les modifications de schéma pour les tables compressées ne sont pas autorisées.

Les paramètres de compression peuvent être modifiés dans le bloc Compression de l'historique et des tendances dans la section AdministrationGénéralNettoyage de l'interface Zabbix.

Paramètre Défaut Commentaires
Activer la compression Activé Cocher ou décocher la case n'active/désactive pas la compression immédiatement. Étant donné que la compression est gérée par le Nettoyage, les modifications prendront effet jusqu'à 2 fois HousekeepingFrequency heures (défini dans zabbix_server.conf)

Après avoir désactivé la compression, les nouveaux chunks qui tombent dans la période de compression ne seront pas compressés. Cependant, toutes les données précédemment compressées resteront compressées. Pour décompresser des chunks précédemment compressés, suivez les instructions dans la documentation TimescaleDB.

Lors de la mise à niveau à partir d'anciennes versions de Zabbix avec prise en charge de TimescaleDB, la compression ne sera pas activée par défaut.
Compresser les enregistrements antérieurs à 7d Ce paramètre ne peut pas être inférieur à 7 jours.

En raison de l'immuabilité des chunks compressés, toutes les données tardives (par exemple, les données retardées par un proxy) qui sont antérieures à cette valeur seront supprimées.