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 (également appelé utf8mb3) et utf8mb4 sont pris en charge (avec les interclassements utf8_bin et utf8mb4_bin respectivement) afin que le serveur/proxy Zabbix fonctionne correctement avec une base de données MySQL. Il est recommandé d'utiliser utf8mb4 pour les nouvelles installations.
Les déclencheurs déterministes doivent être créés lors de l'importation 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'y a pas de privilèges superutilisateur et que log_bin_trust_function_creators = 1 n'est pas défini dans le fichier de configuration MySQL.
Si vous installez à partir des paquets Zabbix, suivez les instructions pour votre plateforme.
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 utf8mb4 comme jeu de caractères par défaut (en supposant que vous vous trouvez dans le répertoire racine des sources Zabbix).
Pour une base de données de proxy Zabbix, seul
schema.sqldoit être importé (ni images.sql ni data.sql).
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# arrêtez-vous ici si vous créez une 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'importation réussie 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 permissions nécessaires pour créer des objets de base de données.
Si vous installez à partir des paquets Zabbix, consultez les instructions correspondant à votre plateforme.
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.
Indiquez un mot de passe lorsque vous y êtes invité, puis saisissez-le à nouveau (notez qu’il se peut que le mot de passe sudo vous soit d’abord demandé) :
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 précédemment créé 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 Zabbix).
Pour une base de données de proxy Zabbix, seul
schema.sqldoit être importé (images.sqletdata.sqlne doivent pas l’être).
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# arrêtez-vous ici si vous créez une base de données pour le proxy Zabbix
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 le proxy Zabbix !
La base de données sera automatiquement créée si elle n'existe pas.
Retournez à la section d'installation.