Aller au contenu

Guide de migration vers Canopsis 22.10.0

Ce guide donne des instructions vous permettant de mettre à jour Canopsis 4.6 vers la version 22.10.0.

Avertissement

Seules les migrations en environnement Docker sont traitées dans ce guide.
Les migrations en environnement CentOS 7 seront traitées dans un second temps.

Prérequis

L'ensemble de cette procédure doit être lu avant son exécution.

Ce document ne prend en compte que Canopsis Community et Canopsis Pro : tout développement personnalisé dont vous pourriez bénéficier ne fait pas partie du cadre de ce Guide de migration.

Procédure de mise à jour

Réalisation d'une sauvegarde

Des sauvegardes sont toujours recommandées, qu'elles soient régulières ou lors de modifications importantes.

La restructuration apportée dans les bases de données pour cette version de Canopsis nous amène à insister d'autant plus sur ce point. Il est donc fortement recommandé de réaliser une sauvegarde complète des VM hébergeant vos services Canopsis, avant cette mise à jour.

Authentification

Les configurations des mécanismes d'authentification LDAP, CAS, SAML sont désormais définies dans le fichier de configuration du service d'API Canopsis.
Vous devez donc reporter vos configurations dans /opt/canopsis/share/config/api/security/config.yml.
Si vous êtes sur une installation Docker et que vous avez paramétré une authentification externe, alors vous avez déjà présenté le fichier config.yml dans un volume. Il vous reste alors à le configurer correctement.

Pour connaitre l'ensemble des paramètres disponibles, reportez vous à la documentation.

Vérification MongoDB

Vérification

Avant de démarrer la procédure de mise à jour, vous devez vérifier que la valeur de featureCompatibilityVersion est bien positionnée à 4.2

docker compose -f 00-data.docker-compose.yml exec mongodb bash
mongo -u root -p root
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
> exit

Le retour doit être de la forme "featureCompatibilityVersion" : { "version" : "4.2" } Si ce n'est pas le cas, vous ne pouvez pas continuer la mise à jour.

Arrêt de l'environnement en cours de lancement

Vous devez prévoir une interruption du service afin de procéder à la mise à jour qui va suivre.

docker compose -f 00-data.docker-compose.yml -f 01-prov.docker-compose.yml -f 02-app.docker-compose.yml down

À venir

Mise à jour Canopsis

Information

Canopsis 22.10 est livré avec un nouveau jeu de configurations de référence.
Vous devez télécharger ces configurations et y reporter vos personnalisations.

La configuration des versions 4.x était basée sur 3 fichiers docker-compose.
À présent, un seul fichier docker-compose.yml est nécessaire.

Vous devez absolument reporter vos personnalisations vers ce nouveau fichier de configuration ou – préférablement – vers un fichier de surcharge (docker-compose.override.yml).


Si vous êtes utilisateur de l'édition community, voici les étapes à suivre.

export CPS_EDITION=community
mkdir 22.10
cd 22.10
git clone https://git.canopsis.net/canopsis/canopsis-community.git -b release-22.10
cd canopsis-community/community/deployment/canopsis/docker/

Si vous êtes utilisateur de l'édition pro, voici les étapes à suivre.

export CPS_EDITION=pro
mkdir 22.10
cd 22.10
git clone https://git.canopsis.net/sources/canopsis-pro-sources.git -b release-22.10
cd canopsis-pro-sources/pro/deployment/canopsis/docker/

À ce stade, vous devez synchroniser les modifications réalisées sur vos anciens fichiers de configuration Docker Compose avec les fichiers docker-compose.yml et/ou docker-compose.override.yml.

À venir

Mise à jour de MongoDB

Dans cette version de Canopsis, la base de données MongoDB passe de la version 4.2 à 4.4.

Démarrez le conteneur mongodb :

docker compose up -d mongodb

Entrez ensuite à l'intérieur de ce conteneur, afin de compléter la mise à jour vers MongoDB 4.4 :

docker compose exec mongodb bash
mongo -u root -p root
> db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
exit

À venir

Mise à jour de TimescaleDB

Dans cette version de Canopsis, la base de données TimescaleDB passe de la version 2.5.1 à 2.7.2.

Relancez le conteneur timescaledb :

docker compose up -d timescaledb

Puis mettez à jour l'extension timescaledb (La chaîne de connexion doit être adaptée à votre environnement)

docker compose exec timescaledb psql postgresql://cpspostgres:canopsis@timescaledb:5432/canopsis
canopsis=# ALTER EXTENSION timescaledb UPDATE;

Ensuite, vérifiez que l'extension en elle-même est à présent bien à jour

\dx
...
timescaledb | 2.7.2   | public     | Enables scalable inserts and complex queries for time-series data
...

À venir

Remise à 0 du cache Redis

Dans cette version de Canopsis, le cache de Canopsis doit repartir à 0.

docker compose up -d redis
docker compose exec redis /usr/local/bin/redis-cli flushall

À venir

Suppression d'options de lancement de certains moteurs

Suppression des options -featureHideResources, -postProcessorsDirectory, -ignoreDefaultTomlConfig dans engine-axe

Supprimez toute éventuelle utilisation des options citées dans vos fichiers de référence Docker Compose.

À venir

Suppression des options -dataSourceDirectory, enrichContext, enrichExclude, enrichInclude dans engine-che

Supprimez toute éventuelle utilisation des options citées dans vos fichiers de référence Docker Compose.

À venir

Suppression des options -dataSourceDirectory, enableMetaAlarmProcessing dans engine-fifo

Supprimez toute éventuelle utilisation des options citées dans vos fichiers de référence Docker Compose.

À venir

Suppression des options -publishQueue, -consumeQueue, -fifoAckExchange dans engine-pbehavior

Supprimez toute éventuelle utilisation des options citées dans vos fichiers de référence Docker Compose.

À venir

Suppression des options -c dans engine-remediation

Supprimez toute éventuelle utilisation des options citées dans vos fichiers de référence Docker Compose.

À venir

Lancement du provisioning canopsis-reconfigure

Important

Le système de provisioning (conteneur provisioning) de Canopsis 4.x disparait au profit du système canopsis-reconfigure qui existait déjà.
Exécuter les scripts de migration MongoDB est à présent une des missions de canopsis-reconfigure

Synchronisation du fichier de configuration canopsis.toml ou fichier de surcharge

Si vous avez modifié le fichier canopsis.toml (vous le voyez via une définition de volume dans votre fichier docker-compose.yml), vous devez vérifier qu'il soit bien à jour par rapport au fichier de référence.

Information

Pour éviter ce type de synchronisation fastidieuse, la bonne pratique est d'utiliser un fichier de surcharge de cette configuration.

Si vous avez utilisé un fichier de surcharge, alors vous n'avez rien à faire, uniquement continuer à le présenter dans un volume.

Reconfiguration de Canopsis

Attention

Si vous avez personnalisé la ligne de commande de l'outil canopsis-reconfigure, nous vous conseillons de supprimer cette personnalisation. L'outil est en effet pré paramétré pour fonctionner naturellement.

docker compose up -d reconfigure

Information

Cette opération peut prendre plusieurs minutes pour s'exécuter.

Vous pouvez ensuite vérifier que le mécanisme de provisioning/reconfigure s'est correctement déroulé. Le conteneur doit présenté un "exit 0"

docker compose ps
canopsis-pro-reconfigure-1            "/canopsis-reconfigu…"   reconfigure            exited (0)

À venir

Démarrage final de Canopsis

Enfin, il vous reste à démarrer tous les composants applicatifs de Canopsis

docker compose up -d

Vous pouvez ensuite vérifier que l'ensemble des conteneurs soient correctement exécutés.

docker compose ps
NAME                                  COMMAND                  SERVICE                STATUS              PORTS
canopsis-pro-action-1                 "/engine-action -wit…"   action                 running             
canopsis-pro-api-1                    "/bin/sh -c /${CMD}"     api                    running (healthy)   0.0.0.0:8082->8082/tcp, :::8082->8082/tcp
canopsis-pro-axe-1                    "/engine-axe -publis…"   axe                    running             
canopsis-pro-che-1                    "/engine-che"            che                    running             
canopsis-pro-connector-junit-1        "/bin/sh -c /${CMD}"     connector-junit        running             
canopsis-pro-correlation-1            "/bin/sh -c /${CMD}"     correlation            running             
canopsis-pro-dynamic-infos-1          "/bin/sh -c /${CMD}"     dynamic-infos          running             
canopsis-pro-fifo-1                   "/bin/sh -c /${CMD}"     fifo                   running             
canopsis-pro-migrate-metrics-meta-1   "/bin/true /migrate-…"   migrate-metrics-meta   exited (0)          
canopsis-pro-mongodb-1                "docker-entrypoint.s…"   mongodb                running (healthy)   0.0.0.0:27027->27017/tcp, :::27027->27017/tcp
canopsis-pro-nginx-1                  "/bin/sh -c /entrypo…"   nginx                  running             80/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp
canopsis-pro-pbehavior-1              "/bin/sh -c /${CMD}"     pbehavior              running             
canopsis-pro-rabbitmq-1               "docker-entrypoint.s…"   rabbitmq               running (healthy)   4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp
canopsis-pro-reconfigure-1            "/canopsis-reconfigu…"   reconfigure            exited (0)          
canopsis-pro-redis-1                  "docker-entrypoint.s…"   redis                  running (healthy)   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp
canopsis-pro-remediation-1            "/bin/sh -c /${CMD}"     remediation            running             
canopsis-pro-service-1                "/engine-service -pu…"   service                running             
canopsis-pro-timescaledb-1            "docker-entrypoint.s…"   timescaledb            running (healthy)   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp
canopsis-pro-webhook-1                "/bin/sh -c /${CMD}"     webhook                running             

À venir

Par ailleurs, le mécanisme de bilan de santé intégré à Canopsis ne doit pas présenter d'erreur.

Healthcheck

Règles métier

Avertissement

Dans cette version, l'ensemble des filtres existant ont été migrés vers le nouveau format.
Vous devez absolument vérifier le contenu de chacun des filtres pour valider que les cibles sont les bonnes.
Les anciens filtres ont été conservés au cas où une des migrations ne se serait pas correctement déroulée.

Moteur SNMP et Linkbuilder

Toutes les parties Python de Canopsis ont été supprimées dans la version 22.10.
Les fonctionnalités SNMP et Linkbuilder n'ont pas encore été migrées en GO et réintégrées dans Canopsis.
Pour continuer à les utiliser, vous devez utiliser les images Docker des versions 4.x.
Cela est temporaire mais nécessaire.

Que ce soit sur une installation par paquets RPM ou par image Docker, nous vous livrons des configurations à exécuter avec Docker.

Vous devez simplement définir la variable d'environnement CPS_OLD_API dans /opt/canopsis/etc/go-engines-vars.conf pour une installation paquets ou compose.env en installation docker.

Avertissement

Les configurations Docker Compose livrées ne doivent absolument pas être modifiées, notamment les versions d'images utilisées.
Par ailleurs, si vous utilisiez déjà la partie SNMP dans votre installation alors la collection schema existe très certainement dans mongoDB.
Si ce n'était pas le cas, vous allez devoir la créer avec ces instructions.

docker compose exec snmp /bin/bash
schema2db

cd ../../../mock/external-services/snmp/docker
docker compose up -d

Dernière mise à jour: 2023-06-08
Retour en haut de la page