Table des matières

Table des matières

Vue générale . 3

Table des matières . 5

1. ... Aperçu technique . 17

1.1 ..... Généralités, solutions, architectures 17

1.1.1 Introduction à SafeKit 17

1.1.2 Solutions SafeKit 18

1.1.3 Architectures SafeKit 18

1.1.4 Définition du cluster SafeKit 19

1.1.5 Définition du module applicatif SafeKit 19

1.1.6 Limites de SafeKit 20

1.2 ..... Le cluster miroir de SafeKit 20

1.2.1 Réplication de fichiers en temps réel et basculement d'application . 20

1.2.2 Étape 1. Fonctionnement normal 21

1.2.3 Étape 2. Basculement 21

1.2.4 Étape 3. Réintégration et resynchronisation . 22

1.2.5 Étape 4. Retour au fonctionnement normal 22

1.2.6 Réplication synchrone et réplication asynchrone . 22

1.2.7 Comportement en cas d'isolation réseau . 23

1.2.8 Réplication à 3 nœuds 23

1.2.9 SafeKit sur un seul nœud pour résister aux pannes logicielles . 24

1.3 ..... Le cluster ferme de SafeKit 24

1.3.1 Équilibrage de charge réseau et basculement d’application . 24

1.3.2 Principe d'une adresse IP virtuelle avec équilibrage de charge réseau . 24

1.3.3 Équilibrage de charge pour les services Web avec ou sans état 25

1.3.4 Solution de haute disponibilité en chaîne dans une ferme . 25

1.4 ..... Clusters exécutant plusieurs modules 26

1.4.1 Le cluster ferme+miroir de SafeKit 26

1.4.2 Le cluster actif/actif avec réplication de SafeKit 26

1.4.3 Le cluster N-1 de SafeKit 27

1.5 ..... Le cluster Hyper-V ou KVM de SafeKit 27

1.5.1 Équilibrage de charge, réplication, basculement de machines virtuelles complètes . 27

1.6 ..... Clusters SafeKit dans le cloud . 28

1.6.1 Cluster miroir dans Azure, AWS et GCP . 28

1.6.2 Cluster ferme dans Azure, AWS et GCP . 30

2. ... Installation . 31

2.1 ..... Installation de SafeKit 31

2.1.1 Télécharger le package . 31

2.1.2 Répertoires d'installation et espace disque . 32

2.1.3 Procédure d’installation de SafeKit 32

2.1.4 Utilisation de la console web et de la ligne de commande SafeKit 36

2.1.5 Clés de licence SafeKit 37

2.1.6 Caractéristiques spécifiques à chaque OS . 37

2.2 ..... Recommandation pour une installation d'un module miroir 38

2.2.1 Prérequis matériel et système . 38

2.2.2 Prérequis réseau . 38

2.2.3 Prérequis application . 38

2.2.4 Prérequis réplication de fichiers 39

2.3 ..... Recommandation pour une installation d'un module ferme . 39

2.3.1 Prérequis matériel et système . 39

2.3.2 Prérequis réseau . 39

2.3.3 Prérequis application . 39

2.4 ..... Upgrade de SafeKit 39

2.4.1 Préparer l'upgrade . 40

2.4.2 Procédure de désinstallation . 40

2.4.3 Procédure de réinstallation et post-installation pour l’upgrade . 40

2.5 ..... Désinstallation complète de SafeKit 42

2.5.1 Désinstallation sur Windows 42

2.5.2 Désinstallation sur Linux . 44

2.6 ..... Documentations SafeKit 44

3. ... La console web de SafeKit 47

3.1 ..... Démarrer la console web . 47

3.1.1 Lancer un navigateur web . 47

3.1.2 Connecter la console à un nœud SafeKit 47

3.1.3 Liste des nœuds de connexion . 49

3.1.4 Utiliser l’application web (SafeKit Web App) 49

3.1.5 Mettre à jour la console web . 51

3.2 ..... Configurer un cluster SafeKit 51

3.2.1 L’assistant de configuration du cluster 52

3.2.2 Page d’accueil de la configuration du cluster 55

3.3 ..... Configurer un module applicatif 56

3.3.1 Sélectionner le nouveau module à configurer 57

3.3.2 L’assistant de configuration du module . 58

3.3.3 Page d’accueil de la configuration des modules 63

3.3.4 Éditer localement la configuration du module puis l’appliquer 65

3.4 ..... Superviser un module applicatif 66

3.4.1 Page d’accueil de la supervision . 66

3.4.2 État du module . 67

3.4.3 Menus de contrôle d’un module . 69

3.4.4 Détails du module . 72

3.4.5 Chronologie des états du module . 78

3.5 ..... Snapshots et journaux du module applicatif pour le débogage et support 78

3.6 ..... Sécuriser la console web . 79

4. ... Tests . 81

4.1 ..... Installation et tests après boot 81

4.1.1 Test installation package . 81

4.1.2 Test licence et version . 82

4.1.3 Test des services et modules SafeKit après boot 82

4.1.4 Test démarrage de la console web . 84

4.2 ..... Tests d'un module miroir 85

4.2.1 Test du premier start d'un module miroir sur 2 serveurs STOP (NotReady) . 85

4.2.2 Test start d'un module miroir sur 2 serveurs STOP (NotReady) . 85

4.2.3 Test stop d'un module miroir sur le serveur PRIM (Ready) . 85

4.2.4 Test start du module miroir dans l'état STOP (NotReady) 86

4.2.5 Test restart du module miroir dans l'état PRIM (Ready) . 86

4.2.6 Test adresse IP virtuelle d'un module miroir 86

4.2.7 Test réplication de fichiers d'un module miroir 87

4.2.8 Test shutdown du serveur PRIM (Ready) . 88

4.2.9 Test power-off du serveur PRIM (Ready) . 89

4.2.10 Test split-brain avec un module miroir 89

4.2.11 Continuer les tests de votre module miroir avec les checkers . 91

4.3 ..... Tests d'un module ferme . 91

4.3.1 Test start d'un module ferme sur les serveurs STOP (NotReady) . 91

4.3.2 Test stop d'un module ferme sur un serveur UP (Ready) . 91

4.3.3 Test restart d'un module ferme sur un serveur UP (Ready) . 91

4.3.4 Test adresse IP virtuelle d'un module ferme . 91

4.3.5 Test load balancing TCP sur une adresse virtuelle . 93

4.3.6 Test split-brain avec un module ferme . 94

4.3.7 Test de la compatibilité du réseau avec l'adresse MAC invisible (vmac_invisible) 95

4.3.8 Test shutdown d’un serveur UP (Ready) . 96

4.3.9 Test power-off d'un serveur UP (Ready) . 97

4.3.10 Continuer les tests du module ferme avec les checkers 97

4.4 ..... Tests des checkers communs à un miroir et une ferme . 97

4.4.1 Test < errd > checker avec action restart ou stopstart 97

4.4.2 Test <tcp> checker avec action restart ou stopstart 98

4.4.3 Test <tcp> checker avec action wait 99

4.4.4 Test <interface check="on"> avec action wait 100

4.4.5 Test <ping> checker avec action wait 101

4.4.6 Test <module> checker avec action wait 102

4.4.7 Test <custom> checker avec action wait 103

4.4.8 Test <custom> checker avec action restart ou stopstart 104

5. ... Administration d'un module miroir . 107

5.1 ..... Mode de fonctionnement d'un module miroir 107

5.2 ..... Automate d'état d'un module miroir ( STOP, WAIT, ALONE, PRIM, SECOND - NotReady, Transient, Ready ) 109

5.3 ..... Premier démarrage d'un module miroir (commande prim ) 109

5.4 ..... Différents cas de réintégration (utilisation des bitmaps) 110

5.5 ..... Démarrage d'un module miroir avec les données à jour STOP (NotReady) - WAIT (NotReady) . 112

5.6 ..... Mode de réplication dégradé ( ALONE (Ready) dégradé) 113

5.7 ..... Reprise automatique ou manuelle . 114

5.8 ..... Serveur primaire par défaut (swap automatique après réintégration) 115

5.9 ..... La commande prim échoue : pourquoi ? (commande primforce ) 116

6. ... Administration d'un module ferme . 119

6.1 ..... Mode de fonctionnement d'un module ferme . 119

6.2 ..... Automate d'état d'un module ferme ( STOP, WAIT, UP - NotReady, Transient, Ready ) 120

6.3 ..... Démarrage d'un module ferme . 120

7. ... Résolution de problèmes . 123

7.1 ..... Problème de connexion avec la console web . 123

7.1.1 Contrôler le navigateur 124

7.1.2 Supprimer l’état du navigateur 124

7.1.3 Contrôler les serveurs . 124

7.2 ..... Problème de connexion HTTPS avec la console web . 125

7.2.1 Contrôler les certificats serveurs 125

7.2.2 Contrôler les certificats installés dans SafeKit 126

7.2.3 Revenir à la configuration HTTP . 127

7.3 ..... Vérification globale de l’environnement (script healthcheck ) 127

7.4 ..... Comment lire les journaux et les ressources du module applicatif ? 127

7.5 ..... Comment lire le journal de commandes du serveur ? 128

7.6 ..... Module stable (Ready) et (Ready) . 128

7.7 ..... Module dégradé (Ready) et / (NotReady) . 129

7.8 ..... Module hors service / (NotReady) et / (NotReady) . 129

7.9 ..... Module STOP (NotReady) : redémarrer le module . 129

7.10 ... Module WAIT (NotReady) : réparer la ressource="down" . 130

7.11 ... Module oscillant de (Ready) à (Transient) . 131

7.12 ... Message sur stop après maxloop . 132

7.13 ... Module (Ready) mais application non opérationnelle . 132

7.14 ... Module mirror ALONE (Ready) / WAIT ou STOP (NotReady) . 133

7.15 ... Module ferme UP (Ready) mais problème de load balancing . 134

7.15.1 Non cohérence des parts de la charge réseau . 134

7.15.2 L'adresse IP virtuelle ne répond pas correctement 134

7.16 ... Problème avec l’adresse IP virtuelle après le basculement 134

7.17 ... Problème après boot 136

7.18 ... Analyse à partir des snapshots du module applicatif 136

7.18.1 Fichiers de configuration du module . 137

7.18.2 Fichiers de dump du module . 137

7.19 ... Problème avec la taille des bases de données de SafeKit 140

7.20 ... Problème pour récupérer le certificat de l'autorité de certification depuis une PKI externe 141

7.20.1 Exporter les certificats CA depuis des certificats publics . 141

7.21 ... Problème d’envoi de courriel par l'agent de notification SafeKit 144

7.21.1 Failed to read or parse the configuration file . 144

7.21.2 Blocage lors du test d’envoi de courriel 145

7.21.3 Erreurs curl 145

7.22 ... Problème avec les antivirus 146

7.23 ... Problèmes liés aux modules noyau SafeKit 147

7.23.1 Module miroir avec le filtre rfs en Windows 147

7.23.2 Module ferme avec le module vip en Linux . 147

7.24 ... Dépannage de résolution VIP MAC . 147

7.24.1 Vérifier les entrées du cache . 147

7.24.2 Forcer une nouvelle resolution . 148

7.24.3 Observer les requêtes de résolution . 148

7.25 ... Problème persistant 149

8. ... Support SafeKit 151

9. ... Interface ligne de commande . 153

9.1 ..... Commandes de contrôle et setup de SafeKit 153

9.1.1 Service safeadmin . 153

9.1.2 Service safewebserver . 154

9.1.3 Agent de notification par courriel 155

9.1.4 Service SNMP . 156

9.1.5 Service web safecaserv . 156

9.2 ..... Commandes de configuration et surveillance du cluster 156

9.3 ..... Commandes de contrôle des modules applicatifs 158

9.4 ..... Commandes de surveillance des modules applicatifs 160

9.5 ..... Commandes de configuration des modules applicatifs 161

9.6 ..... Commandes de support 163

9.6.1 Journal du module applicatif 163

9.6.2 Snapshot d’un module applicatif 164

9.6.3 Autres commandes . 166

9.7 ..... Commandes lors de la maintenance de l’application du module . 167

9.7.1 Contrôle du module lors de la maintenance . 167

9.7.2 Exécution de l'application sans le module . 168

9.8 ..... Commandes distribuées sur plusieurs serveurs SafeKit 169

9.9 ..... Exemples 171

9.9.1 Commande locale et distribuée . 171

9.9.2 Configuration globale du cluster en ligne de commande . 171

9.9.3 Configuration globale d’un module applicatif en ligne de commande . 171

9.9.4 Snapshot d’un module applicatif en ligne de commande . 172

10. Administration et configuration avancées . 175

10.1 ... Variables d'environnement et répertoires SafeKit 175

10.1.1 Global 175

10.1.2 Module applicatif 175

10.2 ... Services/démons SafeKit et communications 178

10.2.1 Services SafeKit 178

10.2.2 Démons SafeKit par module applicatif 179

10.3 ... Paramétrage du pare-feu . 183

10.3.1 Paramétrage du pare-feu en Linux . 184

10.3.2 Paramétrage du pare-feu en Windows 184

10.4 ... Configuration au boot et au shutdown en Windows 185

10.4.1 Procédure automatique . 185

10.4.2 Procédure manuelle . 185

10.5 ... Paramétrage de Secure Boot en Linux pour les modules kernel SafeKit 186

10.6 ... Paramétrage des antivirus 187

10.7 ... Cryptage des communications du module applicatif 188

10.7.1 Configuration avec la console web de SafeKit 188

10.7.2 Configuration en ligne de commandes 188

10.7.3 Configuration avancée . 189

10.8 ... Cryptage des fichiers sensibles dans SafeKit 190

10.9 ... Configuration du service web de SafeKit 191

10.9.1 Serveur Apache HTTP . 192

10.9.2 Fichiers de configuration . 193

10.9.3 Configuration des ports de connexion . 195

10.9.4 Configuration de HTTP/HTTPS et de l’authentification utilisateur 195

10.9.5 API SafeKit 196

10.10 . Agent SafeKit de notification par courriel 198

10.10.1 Configuration de l’agent de notification SafeKit 199

10.10.2 Configuration des identifiants du client SMTP pour l’authentification . 200

10.10.3 Test d'envoi de courriel 201

10.10.4 Activation de l’agent de notification SafeKit 201

10.11 . Supervision SNMP . 202

10.11.1 Supervision SNMP en Windows 202

10.11.2 Supervision SNMP en Linux . 202

10.11.3 La MIB SafeKit 203

10.12 . Journal des commandes du serveur SafeKit 204

10.13 . Messages SafeKit dans le journal système . 204

11. Sécurisation du service web de SafeKit 207

11.1 ... Vue générale . 207

11.1.1 Configuration par défaut 208

11.1.2 Configurations prédéfinies . 208

11.2 ... Configuration HTTP . 209

11.2.1 Configuration par défaut 209

11.2.2 Configuration non sécurisée basée sur un rôle identique pour tous . 211

11.3 ... Configuration HTTPS . 212

11.3.1 Configuration HTTPS avec la PKI SafeKit 213

11.3.2 Configuration HTTPS avec une PKI externe . 222

11.4 ... Configuration de l’authentification utilisateur 226

11.4.1 Configuration l’authentification à base de fichier 226

11.4.2 Configuration de l’authentification à base de serveur LDAP/AD . 228

11.4.3 Configuration de l’authentification à base de serveur OpenID Connect 231

12. Cluster.xml pour la configuration du cluster SafeKit 235

12.1 ... Le fichier cluster.xml . 235

12.1.1 Cluster.xml exemple . 235

12.1.2 Cluster.xml syntaxe . 236

12.1.3 <lans>, <lan>, <node> attributs . 236

12.2 ... Configuration du cluster SafeKit 238

12.2.1 Configuration avec la console web de SafeKit 238

12.2.2 Configuration en ligne de commande . 239

12.2.3 Changements de configuration . 239

13. Userconfig.xml pour la configuration du module applicatif 241

13.1 ... Attributs temporels 242

13.1.1 Exemple d’attributs temporels . 242

13.1.2 Syntaxe des attributs temporels 242

13.2 ... Macros - <macro> . 243

13.2.1 <macro> Exemple . 243

13.2.2 <macro> Syntaxe . 243

13.2.3 <macro> Attributs . 243

13.3 ... Module ferme ou miroir - <service> . 244

13.3.1 <service> Exemple . 244

13.3.2 <service> Syntaxe . 244

13.3.3 <service> Attributs . 245

13.4 ... Heartbeats - < heart >, < heartbeat > . 247

13.4.1 < heart > Exemple . 248

13.4.2 < heart > Syntaxe . 248

13.4.3 < heart >, < heartbeat> Attributs . 248

13.5 ... Topologie d'une ferme - <farm>, <lan> . 250

13.5.1 <farm> Exemple . 250

13.5.2 <farm> Syntaxe . 250

13.5.3 <farm>, <lan> Attributs . 251

13.6 ... Adresse IP virtuelle - <vip> . 252

13.6.1 <vip> Exemple dans un module miroir 252

13.6.2 <vip> Exemple dans un module ferme . 252

13.6.3 Alternative à <vip> . 253

13.6.4 <vip> Syntaxe . 254

13.6.5 <interface_list>, <interface>, <virtual_interface>, <real_interface>, <virtual_addr> Attributs . 255

13.6.6 <loadbalancing_list>, <group>, <cluster>, <host> Attributs 258

13.6.7 <vip> Description . 260

13.7 ... Réplication de fichiers - <rfs>, <replicated> . 261

13.7.1 <rfs> Exemple . 262

13.7.2 <rfs> Syntaxe . 262

13.7.3 <rfs>, <replicated> Attributs . 263

13.7.4 <rfs>Description . 272

13.8 ... Scripts du module - <user>, <var> . 281

13.8.1 <user> Exemple . 281

13.8.2 <user> Syntaxe . 281

13.8.3 <user>, <var> Attributs . 282

13.9 ... Hostname virtuel - <vhost>, <virtualhostname> . 282

13.9.1 <vhost> Exemple . 282

13.9.2 <vhost> Syntaxe . 283

13.9.3 <vhost>, <virtualhostname> Attributs . 283

13.9.4 <vhost> Description . 283

13.10 . Surveillance de processus ou services - <errd>, <proc> . 284

13.10.1 < errd > Exemple . 284

13.10.2 < errd > Syntaxe . 286

13.10.3 < errd >, <proc> Attributs 286

13.10.4 < errd > Commandes 290

13.11 . Checkers - <check> . 292

13.11.1 <check> Exemple . 292

13.11.2 <check> Syntaxe . 292

13.11.3 <checker> Description . 293

13.12 . TCP checker - <tcp> . 296

13.12.1 <tcp> Exemple . 296

13.12.2 <tcp> Syntaxe . 296

13.12.3 <tcp> Attributs . 297

13.13 . Ping checker - <ping> . 298

13.13.1 <ping> Exemple . 299

13.13.2 <ping> Syntaxe . 299

13.13.3 <ping> Attributs . 299

13.14 . Interface checker - <intf> . 301

13.14.1 <intf> Exemple . 301

13.14.2 <intf> Syntaxe . 301

13.14.3 <intf> Attributs . 302

13.15 . IP checker - <ip> . 302

13.15.1 <ip> Exemple . 302

13.15.2 <ip> Syntaxe . 303

13.15.3 <ip> Attributs . 303

13.16 . Custom checker - <custom> . 304

13.16.1 <custom> Exemple . 304

13.16.2 <custom> Syntaxe . 305

13.16.3 <custom> Attributs 305

13.17 . Module checker - <module> . 306

13.17.1 <module> Exemple . 307

13.17.2 <module> Syntaxe . 307

13.17.3 <module> Attributs . 307

13.18 . Splitbrain checker - <splitbrain> . 308

13.18.1 <splitbrain> Exemple . 309

13.18.2 <splitbrain> Syntaxe . 309

13.18.3 <splitbrain> Attributs . 310

13.19 . Failover machine - <failover> . 310

13.19.1 <failover> Exemple . 311

13.19.2 <failover> Syntaxe . 312

13.19.3 <failover> Attributs . 312

13.19.4 <failover> Description . 312

14. Scripts du module pour la configuration du module applicatif 317

14.1 ... Liste des scripts 317

14.1.1 Scripts de démarrage/arrêt 317

14.1.2 Autres scripts 319

14.2 ... Variables d’environnement et arguments passés aux scripts 319

14.3 ... Sortie des scripts 320

14.3.1 Sortie dans le journal du script 320

14.3.2 Sortie dans le journal du module . 320

14.4 ... Automate d’exécution des scripts 321

14.5 ... Commandes spéciales SafeKit pour les scripts 322

14.5.1 Commandes pour Windows . 323

14.5.2 Commandes pour Linux . 323

14.5.3 Commandes pour Windows et Linux . 324

15. Exemples de configurations de module applicatif 327

15.1 ... Exemple de module miroir avec mirror.safe . 328

15.1.1 Configuration du cluster avec deux réseaux . 328

15.1.2 Configurations du module miroir 329

15.1.3 Scripts du module miroir 331

15.2 ... Exemple de module ferme avec farm.safe . 333

15.2.1 Configuration du cluster avec trois nœuds 333

15.2.2 Configurations du module ferme . 334

15.2.3 Scripts du module ferme . 342

15.3 ... Exemple d’utilisation de macros et variables de script avec hyperv.safe . 345

15.3.1 Configuration du module avec macro et var 345

15.3.2 Accès des variables par les scripts du module . 346

15.4 ... Exemple de surveillance de processus avec softerrd.safe . 347

15.4.1 Configuration du module avec surveillance de processus 347

15.4.2 Configuration avancée des scripts du module . 348

15.5 ... Exemple de TCP checker 350

15.6 ... Exemple de ping checker 351

15.7 ... Exemple de custom checker avec customchecker.safe . 353

15.7.1 Configuration du module avec un custom checker 353

15.7.2 Configuration avancée du script du module checker 355

15.8 ... Exemple de splitbrain checker 356

15.9 ... Exemples de module checker 357

15.9.1 Exemple d’un module ferme dépendant d'un module miroir 357

15.9.2 Exemple avec leader.safe et follower.safe . 359

15.10 . Exemple de checker d'interface réseau . 359

15.11 . Exemple d’IP checker 360

15.12 . Exemple d'hostname virtuel avec vhost.safe . 361

15.12.1 Configuration du module avec un hostname virtuel 361

15.12.2 Scripts du module avec un hostname virtuel 362

16. Cluster SafeKit dans le cloud . 365

16.1 ... Cluster SafeKit dans Amazon AWS . 365

16.1.1 Cluster miroir dans AWS . 366

16.1.2 Cluster ferme dans AWS . 367

16.2 ... Cluster SafeKit dans Microsoft Azure . 369

16.2.1 Cluster miroir dans Azure . 370

16.2.2 Cluster ferme dans Azure . 371

16.3 ... Cluster SafeKit dans Google GCP . 372

16.3.1 Cluster miroir dans GCP . 373

16.3.2 Cluster ferme dans GCP . 375

17. Logiciels tiers . 377

Index des messages du journal du module . 381

Index . 385


PDF