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 SNMP service . 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 et démons SafeKit 178

10.2.1 Services SafeKit 178

10.2.2 Démons SafeKit par module . 178

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

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

10.3.2 Paramétrage du pare-feu en Windows 180

10.3.3 Autres pare-feux . 180

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

10.4.1 Procédure automatique . 184

10.4.2 Procédure manuelle . 184

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

10.6 ... Paramétrage des antivirus 186

10.7 ... Cryptage des communications du module applicatif 187

10.7.1 Configuration avec la console web de SafeKit 187

10.7.2 Configuration en ligne de commandes 187

10.7.3 Configuration avancée . 188

10.8 ... Cryptage des fichiers sensibles dans SafeKit 189

10.9 ... Configuration du service web de SafeKit 190

10.9.1 Fichiers de configuration . 190

10.9.2 Configuration des ports de connexion . 192

10.9.3 Configuration de HTTP/HTTPS et de l’authentification utilisateur 192

10.9.4 API SafeKit 193

10.10 . Agent SafeKit de notification par courriel 195

10.10.1 Configuration de l’agent de notification SafeKit 196

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

10.10.3 Test d'envoi de courriel 198

10.10.4 Activation de l’agent de notification SafeKit 198

10.11 . Surveillance SNMP . 199

10.11.1 Surveillance SNMP en Windows . 199

10.11.2 Surveillance SNMP en Linux . 199

10.11.3 La MIB SafeKit 200

10.12 . Journal des commandes du serveur SafeKit 201

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

11. Sécurisation du service web de SafeKit 203

11.1 ... Vue générale . 203

11.1.1 Configuration par défaut 204

11.1.2 Configurations prédéfinies . 204

11.2 ... Configuration HTTP . 205

11.2.1 Configuration par défaut 205

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

11.3 ... Configuration HTTPS . 208

11.3.1 Configuration HTTPS avec la PKI SafeKit 209

11.3.2 Configuration HTTPS avec une PKI externe . 218

11.4 ... Configuration de l’authentification utilisateur 222

11.4.1 Configuration l’authentification à base de fichier 222

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

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

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

12.1 ... Le fichier cluster.xml . 231

12.1.1 Cluster.xml exemple . 231

12.1.2 Cluster.xml syntaxe . 232

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

12.2 ... Configuration du cluster SafeKit 234

12.2.1 Configuration avec la console web de SafeKit 234

12.2.2 Configuration en ligne de commande . 235

12.2.3 Changements de configuration . 235

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

13.1 ... Attributs temporels 238

13.1.1 Exemple d’attributs temporels . 238

13.1.2 Syntaxe des attributs temporels 238

13.2 ... Macros - <macro> . 239

13.2.1 <macro> Exemple . 239

13.2.2 <macro> Syntaxe . 239

13.2.3 <macro> Attributs . 239

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

13.3.1 <service> Exemple . 240

13.3.2 <service> Syntaxe . 240

13.3.3 <service> Attributs . 241

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

13.4.1 < heart > Exemple . 244

13.4.2 < heart > Syntaxe . 244

13.4.3 < heart >, < heartbeat> Attributs . 244

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

13.5.1 <farm> Exemple . 246

13.5.2 <farm> Syntaxe . 246

13.5.3 <farm>, <lan> Attributs . 247

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

13.6.1 <vip> Exemple dans un module miroir 248

13.6.2 <vip> Exemple dans un module ferme . 248

13.6.3 Alternative à <vip> . 249

13.6.4 <vip> Syntaxe . 250

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

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

13.6.7 <vip> Description . 256

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

13.7.1 <rfs> Exemple . 258

13.7.2 <rfs> Syntaxe . 258

13.7.3 <rfs>, <replicated> Attributs . 259

13.7.4 <rfs>Description . 268

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

13.8.1 <user> Exemple . 277

13.8.2 <user> Syntaxe . 277

13.8.3 <user>, <var> Attributs . 278

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

13.9.1 <vhost> Exemple . 278

13.9.2 <vhost> Syntaxe . 279

13.9.3 <vhost>, <virtualhostname> Attributs . 279

13.9.4 <vhost> Description . 279

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

13.10.1 < errd > Exemple . 280

13.10.2 < errd > Syntaxe . 282

13.10.3 < errd >, <proc> Attributs 282

13.10.4 < errd > Commandes 286

13.11 . Checkers - <check> . 288

13.11.1 <check> Exemple . 288

13.11.2 <check> Syntaxe . 288

13.11.3 <checker> Description . 289

13.12 . TCP checker - <tcp> . 292

13.12.1 <tcp> Exemple . 292

13.12.2 <tcp> Syntaxe . 292

13.12.3 <tcp> Attributs . 293

13.13 . Ping checker - <ping> . 294

13.13.1 <ping> Exemple . 295

13.13.2 <ping> Syntaxe . 295

13.13.3 <ping> Attributs . 295

13.14 . Interface checker - <intf> . 297

13.14.1 <intf> Exemple . 297

13.14.2 <intf> Syntaxe . 297

13.14.3 <intf> Attributs . 298

13.15 . IP checker - <ip> . 298

13.15.1 <ip> Exemple . 298

13.15.2 <ip> Syntaxe . 299

13.15.3 <ip> Attributs . 299

13.16 . Custom checker - <custom> . 300

13.16.1 <custom> Exemple . 300

13.16.2 <custom> Syntaxe . 301

13.16.3 <custom> Attributs 301

13.17 . Module checker - <module> . 302

13.17.1 <module> Exemple . 303

13.17.2 <module> Syntaxe . 303

13.17.3 <module> Attributs . 303

13.18 . Splitbrain checker - <splitbrain> . 304

13.18.1 <splitbrain> Exemple . 305

13.18.2 <splitbrain> Syntaxe . 305

13.18.3 <splitbrain> Attributs . 306

13.19 . Failover machine - <failover> . 306

13.19.1 <failover> Exemple . 307

13.19.2 <failover> Syntaxe . 308

13.19.3 <failover> Attributs . 308

13.19.4 <failover> Description . 308

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

14.1 ... Liste des scripts 313

14.1.1 Scripts de démarrage/arrêt 313

14.1.2 Autres scripts 315

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

14.3 ... Sortie des scripts 316

14.3.1 Sortie dans le journal du script 316

14.3.2 Sortie dans le journal du module . 316

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

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

14.5.1 Commandes pour Windows . 319

14.5.2 Commandes pour Linux . 319

14.5.3 Commandes pour Windows et Linux . 320

15. Exemples de configurations de module applicatif 323

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

15.1.1 Configuration du cluster avec deux réseaux . 324

15.1.2 Configurations du module miroir 325

15.1.3 Scripts du module miroir 327

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

15.2.1 Configuration du cluster avec trois nœuds 329

15.2.2 Configurations du module ferme . 330

15.2.3 Scripts du module ferme . 338

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

15.3.1 Configuration du module avec macro et var 341

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

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

15.4.1 Configuration du module avec surveillance de processus 343

15.4.2 Configuration avancée des scripts du module . 344

15.5 ... Exemple de TCP checker 346

15.6 ... Exemple de ping checker 347

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

15.7.1 Configuration du module avec un custom checker 349

15.7.2 Configuration avancée du script du module checker 351

15.8 ... Exemple de splitbrain checker 352

15.9 ... Exemples de module checker 353

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

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

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

15.11 . Exemple d’IP checker 356

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

15.12.1 Configuration du module avec un hostname virtuel 357

15.12.2 Scripts du module avec un hostname virtuel 358

16. Cluster SafeKit dans le cloud . 361

16.1 ... Cluster SafeKit dans Amazon AWS . 361

16.1.1 Cluster miroir dans AWS . 362

16.1.2 Cluster ferme dans AWS . 363

16.2 ... Cluster SafeKit dans Microsoft Azure . 365

16.2.1 Cluster miroir dans Azure . 366

16.2.2 Cluster ferme dans Azure . 367

16.3 ... Cluster SafeKit dans Google GCP . 368

16.3.1 Cluster miroir dans GCP . 369

16.3.2 Cluster ferme dans GCP . 371

17. Logiciels tiers . 373

Index des messages du journal du module . 377

Index . 381


PDF