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
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.
- Arretez le service et installez la licence de cluster :
./webserver stop
cp /chemin/vers/license_MNS.dat /opt/mugnsoft/webserver/
- Editez
webserver.json: gardez ce qui s’y trouve et ajoutezAdvertiseAddresset le blocHA.
{
"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.
- 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
- 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.
- Copiez la meme licence de cluster dans le dossier d’installation.
- 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/
- Ecrivez
webserver.json: la meme adresse partagee et la meme cle, son propre nom et sa propre adresse, sansBootstrap.
{
"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"]
}
}
- 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
- Arretez le Webserver actif :
# sur le noeud 1
./webserver stop
- 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.
- 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
pki sur le noeud 2, sinon le Front n’est plus mis a jour quand le noeud 2 est actif. Voir Webserver-Front avec un cluster.
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.