Demarrage rapide : cluster Webserver

Cette page construit un cluster de deux Webservers et un temoin, a partir d’un Webserver deja en service (ou d’un nouveau). Comptez environ trente minutes. Vos donnees, utilisateurs et moniteurs sont conserves.

Avant de commencer

Il vous faut Detail
3 hotes Deux pour les Webservers, un petit hote pour le temoin. Ils doivent se joindre sur un port TCP de votre choix (7001 ici).
Une adresse partagee Une IP virtuelle, un repartiteur de charge ou un nom DNS devant les deux Webservers. Les utilisateurs et les composants l’utilisent a la place de l’adresse d’un noeud.
Une licence de cluster Un seul license_MNS.dat qui liste les deux Webservers. Voir l’etape 1.
Des horloges synchronisees NTP sur les trois hotes.
Le paquet Webserver La meme version sur les trois hotes, une version qui inclut la fonction cluster (posterieure a la 4.2.0).

Les commandes utilisent ces valeurs d’exemple. Remplacez-les par les votres.

Valeur Exemple
Noeud 1 : le Webserver qui detient vos donnees 10.0.0.11, nom node1
Noeud 2 : le second Webserver 10.0.0.12, nom node2
Temoin 10.0.0.13, nom witness
Port du cluster 7001
Adresse partagee mugnsoft.example.com
Dossier d’installation /opt/mugnsoft/webserver

Windows

Les etapes sont les memes. Utilisez webserver.exe a la place de ./webserver, dans un PowerShell eleve, depuis C:\Mugnsoft\webserver.

Etape 1 : obtenir la licence de cluster

Executez l’outil d’empreinte sur le noeud 1 et le noeud 2 et envoyez les deux jetons a Mugnsoft, en indiquant lequel est le noeud 1. Vous recevez un seul license_MNS.dat pour le cluster. Le temoin n’a pas besoin de licence.

Faites lister en premier le serveur qui detient vos donnees : le premier serveur de la licence a des droits supplementaires, voir Licence.

Etape 2 : generer la cle du cluster

Sur le noeud 1, depuis le dossier d’installation :


cd /opt/mugnsoft/webserver
./webserver ha genkey

La commande affiche 64 caracteres hexadecimaux. Cette cle est la meme sur les trois noeuds : c’est elle qui leur permet de se faire confiance. Gardez-la secrete.

Etape 3 : faire du noeud 1 le premier noeud du cluster

Pas encore de Webserver ? Installez-en un d’abord avec Installer sous Linux ou Installer sous Windows, avec la licence de cluster, puis revenez ici.

  1. Arretez le service et installez la licence de cluster :

./webserver stop
cp /chemin/vers/license_MNS.dat /opt/mugnsoft/webserver/
  1. Editez webserver.json : gardez ce qui s’y trouve et ajoutez AdvertiseAddress et le bloc HA.

{
  "HTTPS": "true",
  "PortAPI": "8050",
  "PortWEB": "9090",
  "AdvertiseAddress": "mugnsoft.example.com",
  "HA": {
    "NodeID": "node1",
    "Bind": "10.0.0.11:7001",
    "Key": "<la cle du cluster>",
    "Bootstrap": "true",
    "Peers": ["10.0.0.12:7001", "10.0.0.13:7001"]
  }
}

Peers liste les deux autres noeuds, pas celui-ci. Bootstrap ne se met que sur le noeud 1.

  1. Demarrez-le et verifiez :

./webserver start
./webserver ha status

Le noeud 1 est le Webserver actif, seul pour l’instant, avec toutes ses donnees. L’interface fonctionne comme avant.

Etape 4 : ajouter le noeud 2

  1. Sur le noeud 2, telechargez et extrayez le paquet Webserver (etape 1 de l’Option B dans Installer sous Linux). Ne l’installez pas et ne le demarrez pas encore.
  2. Copiez la meme licence de cluster dans le dossier d’installation.
  3. Copiez le certificat TLS et sa cle depuis le noeud 1, pour que les deux Webservers presentent le meme certificat :

mkdir -p config/ssl/certificates config/ssl/private
scp 10.0.0.11:/opt/mugnsoft/webserver/config/ssl/certificates/webserver.pem config/ssl/certificates/
scp 10.0.0.11:/opt/mugnsoft/webserver/config/ssl/private/webserver.key     config/ssl/private/
  1. Ecrivez webserver.json : la meme adresse partagee et la meme cle, son propre nom et sa propre adresse, sans Bootstrap.

{
  "HTTPS": "true",
  "PortAPI": "8050",
  "PortWEB": "9090",
  "AdvertiseAddress": "mugnsoft.example.com",
  "HA": {
    "NodeID": "node2",
    "Bind": "10.0.0.12:7001",
    "Key": "<la cle du cluster>",
    "Peers": ["10.0.0.11:7001", "10.0.0.13:7001"]
  }
}
  1. Installez le service et demarrez-le :

./webserver install && ./webserver start

Le noeud 2 copie les donnees du noeud 1, puis rejoint le cluster comme noeud en attente. Sur une grande installation, la copie prend quelques minutes.

Etape 5 : ajouter le temoin

Sur l’hote temoin, extrayez le meme paquet. Pas de licence, pas de certificat a copier. Ecrivez webserver.json :


{
  "HTTPS": "true",
  "PortAPI": "8050",
  "PortWEB": "9090",
  "HA": {
    "NodeID": "witness",
    "Bind": "10.0.0.13:7001",
    "Key": "<la cle du cluster>",
    "Witness": "true",
    "Peers": ["10.0.0.11:7001", "10.0.0.12:7001"]
  }
}

Puis :


./webserver install && ./webserver start

Le temoin vote et detient une copie des donnees. Il n’execute pas de serveur web : personne ne s’y connecte.

Etape 6 : verifier le cluster

Sur n’importe quel noeud :


./webserver ha status

La commande liste les trois noeuds et indique lequel est actif.

Dans l’interface : menu engrenage → components, editez le Webserver. Le panneau Cluster haute disponibilite doit afficher Sain, avec le noeud 1 actif, le noeud 2 en attente et le temoin.

Le panneau affiche Signification
Sain Trois noeuds en service et synchronises.
Integration en cours Un noeud copie encore les donnees. Patientez.
A verifier Quelque chose se passerait mal a la prochaine bascule. Le panneau dit quoi et sur quel serveur. Voir Depannage.

Etape 7 : placer l’adresse partagee devant

Faites pointer l’IP virtuelle ou le repartiteur vers les deux Webservers (pas le temoin), sur les ports WEB et API, avec ce controle de sante :

Controle Noeud actif En attente
GET /ha/health 200 503

C’est le controle de sante qui ecarte les clients d’un noeud tombe. Une requete qui arrive sur un noeud en attente n’est pas perdue non plus : il la transmet au noeud actif.

Desormais, les utilisateurs ouvrent https://mugnsoft.example.com:9090/.

Etape 8 : verifier les composants

Rien n’est a enregistrer de nouveau. Les composants, leurs certificats et leurs jetons font partie des donnees que detiennent les deux Webservers.

Composant Que faire
Agents Sentinel Rien. Le Webserver actif communique l’adresse partagee a chaque agent. L’agent bascule apres avoir verifie qu’il la joint.
Sondes Rien. C’est le Webserver qui les appelle.
Integrateurs Mettez webserverUrl a https://mugnsoft.example.com:9090 dans integrator.json et redemarrez, pour que les liens des notifications ouvrent l’adresse partagee.
Pare-feu Chaque Webserver appelle les composants depuis sa propre IP. Autorisez le noeud 2 partout ou le noeud 1 l’etait.
Nouveaux composants Enregistrez-les avec l’adresse partagee : --webserver mugnsoft.example.com:8050. La visite guidee et le generateur de configuration la donnent deja.

Details dans Configuration.

Etape 9 : tester une bascule

  1. Arretez le Webserver actif :

# sur le noeud 1
./webserver stop
  1. Rechargez l’interface par l’adresse partagee. Elle repond en quelques secondes et vous etes toujours connecte. Le panneau du cluster affiche le noeud 2 actif et le noeud 1 arrete.
  2. Redemarrez le noeud 1. Il se remet a jour seul et devient un noeud en attente. Le role ne revient pas : le noeud 2 reste actif.

./webserver start
./webserver ha status

Ensuite

  • Exploitation : maintenance, remplacement d’un noeud, recuperation quand des noeuds sont perdus.
  • Licence : ce qui se passe quand il ne reste qu’un Webserver.
  • Fonctionnement : ce qui est copie entre les noeuds et ce qui ne l’est pas.

Traductions