Link Search Menu Expand Document

Utiliser une base de données externe

Cette page concerne les versions 5.X de cbw-on-premise. Veuillez migrer le socle de l'orchestrateur de cbw-on-premise 2.X à cbw-on-premise 5.X selon votre type d'installation.

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.6
  • 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

  1. 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 de innodb_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.