Utiliser une base de données externe
Cette page décrit comment configurer Cyberwatch pour utiliser une base de données externe à la place de la base de données déployée en tant que conteneur de l’instance Cyberwatch.
Prérequis
Cyberwatch supporte les base de données suivantes :
- MariaDB 10.11
- MySQL 8.X
Prérequis matériels
Cyberwatch recommande la configuration matérielle suivante pour assurer le bon fonctionnement de l’application :
- 2 vCPU
- 12 Go de RAM
- 100 Go d’espace disque
Cas d’usage d’une base de données externe
Cyberwatch utilise par défaut une base de données MariaDB conteneurisée.
L’utilisation d’une base de données externalisée plutôt que conteneurisée peut s’avérer nécessaire dans certains cas de figure.
Cyberwatch requiert l’utilisation d’une base de données externalisée pour toute instance visant à superviser 5000 ou plus actifs. L’utilisation d’une base externalisée est également possible pour les instances plus petites, en considérant les avantages et limitations ci-dessous.
Avantages de l’utilisation d’une base externalisée
- possibilité de configurer et personnaliser les configurations de la base ;
- utilisation d’un serveur dédié, permettant d’allouer plus finement les ressources ;
- meilleures performances ;
- mécanismes de réplications et de sauvegardes plus finement paramétrables.
Limitations liées à l’utilisation d’une base externalisée
- l’utilisation d’un serveur dédié entraîne des besoins d’infrastructures supplémentaires ;
- la maintenance de la base de données et du serveur dédié ne relève pas de Cyberwatch, bien que nos équipes soient disponibles pour vous conseiller en cas de besoin.
Configuration du socle Cyberwatch
-
Reconfigurer l’instance pour ne pas utiliser de base de données locale :
sudo cyberwatch configure --no-db
Si votre instance est composée de plusieurs nœuds, il est nécessaire de specifier à nouveau les options à utiliser.
Par exemple, pour utiliser une base de données externe sur un nœud maître :
sudo cyberwatch configure --no-db --master
Configuration de la base de données externalisée
Afin de pouvoir profiter des améliorations de performance visées par l’utilisation d’une base de données externalisée, il est nécessaire de la configurer en fonction de du dimensionnement de l’instance Cyberwatch. La configuration par défaut n’est pas satisfaisante.
Le fichier de configuration à éditer peut dépendre de la base de données ainsi que du système sur laquelle elle est installée. Dans cette documentation, nous choisissons de modifier le fichier /etc/my.cnf
sur le système hébergeant la base de données externalisée.
Pour en savoir plus, se référer à la documentation de MariaDB concernant les fichiers de configuration : https://mariadb.com/kb/en/configuring-mariadb-with-option-files/#default-option-file-locations-on-linux-unix-mac
Configuration minimale et variables à modifier
Voici un exemple de configuration minimale du fichier /etc/my.cnf
dans le cas de l’utilisation d’une base externalisée :
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
innodb_buffer_pool_size = 1536M
innodb_log_file_size = 384M
Les deux premières lignes permettent de définir le charset à utiliser afin d’éviter tout problème d’encodage.
Les deux lignes suivantes sont les configurations InnoDB minimale à utiliser à la date de rédaction de cette documentation.
Adapter la configuration à la taille de la base de données
Cette configuration par défaut doit être adaptée selon le dimensionnement de la base de données Cyberwatch.
La taille de la base de données dépendra principalement du nombre d’actifs supervisés.
Deux règles d’or sont à suivre en toutes circonstances pour disposer de performances raisonnables :
- la variable
innodb_buffer_pool_size
doit toujours être supérieure à la taille de la base de données ; - la variable
innodb_log_file_size
doit être environ égale ou légèrement supérieure à la valeur deinnodb_buffer_pool_size
/8.
D’autres paramètres sont fréquemment définis pour améliorer les performances de la base de données. L’idéal étant de suivre les recommandations de l’outil MySQLTuner
qui permet de faire un diagnostic de l’état de santé et des performances de la base de données.
Utilisation de MySQLTuner
MySQLTuner est un outil open source permettant d’auditer la configuration d’une base de données MySQL et qui émet des recommandations de configuration permettant d’améliorer les performances et la stabilité de l’installation : https://github.com/major/MySQLTuner-perl
L’outil MySQLTuner est intégré dans le conteneur sidekiq
de l’application Cyberwatch et peut donc être utilisé avec la commande suivante :
sudo cyberwatch exec sidekiq mysqltuner
En fonction des recommandations émises par le script, des modifications de configuration pourront être apportées à la base de données. En cas de question, n’hésitez pas à vous rapprocher de notre support technique.