1 Création de la base de données

Aperçu

Une base de données Zabbix doit être créée lors de l'installation du serveur ou du proxy Zabbix.

Cette section fournit des instructions pour créer une base de données Zabbix. Un ensemble d'instructions distinct est disponible pour chaque base de données prise en charge.

Pour améliorer la sécurité de la base de données en créant des rôles/utilisateurs de base de données avec des privilèges minimaux, consultez les bonnes pratiques de création de base de données pour chaque base de données prise en charge :

Pour configurer des connexions TLS sécurisées, consultez Connexion sécurisée à la base de données.

UTF-8 est le seul encodage pris en charge par Zabbix. Il est connu pour fonctionner sans faille de sécurité. Les utilisateurs doivent savoir qu'il existe des problèmes de sécurité connus lors de l'utilisation de certains autres encodages. Pour passer à UTF-8, consultez Réparation du jeu de caractères et du classement de la base de données Zabbix. Voir aussi Limites du filtrage avec les classements utf8mb4.

Si vous installez depuis le dépôt Git Zabbix, vous devez exécuter la commande suivante avant de passer aux étapes suivantes :

make dbschema

MySQL/MariaDB

Les jeux de caractères utf8 (alias utf8mb3) et utf8mb4 sont pris en charge (avec respectivement les tris utf8_bin et utf8mb4_bin) pour que le serveur/proxy Zabbix fonctionne correctement avec la base de données MySQL. Il est recommandé d'utiliser utf8mb4 pour les nouvelles installations.

Des déclencheurs déterministes doivent être créés lors de l'import du schéma. Sur MySQL et MariaDB, cela nécessite que GLOBAL log_bin_trust_function_creators = 1 soit défini si la journalisation binaire est activée, qu'il n'existe pas de privilèges superutilisateur et que log_bin_trust_function_creators = 1 ne soit pas défini dans le fichier de configuration MySQL.

Si vous installez Zabbix à partir de packages ou de conteneurs, consultez les instructions correspondantes.

Si vous installez Zabbix à partir des sources :

  • Créez et configurez une base de données et un utilisateur.
mysql -uroot -p<password>

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'localhost' identified by '<password>';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
mysql> quit;
  • Importez les données dans la base de données et définissez le jeu de caractères utf8mb4 comme valeur par défaut (en supposant que vous vous trouvez dans le répertoire racine des sources de Zabbix). Pour une base de données de proxy Zabbix, seul schema.sql doit être importé (pas de images.sql ni de data.sql).
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# arrêtez-vous ici si vous créez la base de données pour le proxy Zabbix
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql

log_bin_trust_function_creators peut être désactivé après l'import réussi du schéma :

mysql -uroot -p<password>

mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;

PostgreSQL

Vous devez disposer d'un utilisateur de base de données ayant les autorisations nécessaires pour créer des objets de base de données.

Si vous installez Zabbix à partir de packages ou de conteneurs, consultez les instructions correspondantes.

Si vous installez Zabbix à partir des sources :

  • Créez un utilisateur de base de données.

La commande shell suivante créera l'utilisateur zabbix. Spécifiez un mot de passe lorsque vous y êtes invité, puis saisissez-le à nouveau (notez que l'on peut d'abord vous demander le mot de passe sudo) :

sudo -u postgres createuser --pwprompt zabbix
  • Créez une base de données.

La commande shell suivante créera la base de données zabbix (dernier paramètre) avec l'utilisateur créé précédemment comme propriétaire (-O zabbix).

sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
  • Importez le schéma initial et les données (en supposant que vous vous trouvez dans le répertoire racine des sources de Zabbix). Pour une base de données de proxy Zabbix, seul schema.sql doit être importé (ni images.sql ni data.sql).
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# stop here if you are creating database for Zabbix proxy
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix

Les commandes ci-dessus sont fournies à titre d'exemple et fonctionneront dans la plupart des installations GNU/Linux. Vous pouvez utiliser des commandes différentes selon la configuration de votre système/base de données, par exemple :

psql -U <username>

Si vous rencontrez des difficultés lors de la configuration de la base de données, veuillez consulter votre administrateur de base de données.

TimescaleDB

Les instructions pour créer et configurer TimescaleDB sont fournies dans une section distincte.

SQLite

L'utilisation de SQLite est prise en charge uniquement pour Zabbix proxy !

La base de données sera créée automatiquement si elle n'existe pas.

Retournez à la section d'installation.