Health Check d’un serveur Medulla
Cette procédure permet de vérifier rapidement le bon fonctionnement d'un serveur Medulla et de ses principaux composants.
Elle peut notamment être utilisée :
- après un redémarrage du serveur ;
- après une opération de maintenance ;
- après une mise à jour de Medulla ;
- après une modification de configuration ;
- lorsqu'un dysfonctionnement général de la plateforme est suspecté.
Information :
Ce Health Check a pour objectif de confirmer rapidement que les principaux composants Medulla sont opérationnels. Si l'un des contrôles échoue, consultez les logs du composant concerné avant de redémarrer ou modifier le service.
1. Vérifier l'accès à l'interface Medulla
Commencez par vous connecter à l'interface Web Medulla.
Vérifiez notamment que :
- la page de connexion est accessible ;
- l'authentification fonctionne ;
- l'interface principale se charge correctement ;
- les machines apparaissent dans l'inventaire.
Résultat attendu :
L'administrateur peut se connecter à Medulla et consulter normalement l'inventaire des machines.
2. Vérifier l'état des principaux services Medulla
Vérifiez l'état des principaux services Medulla avec systemctl.
systemctl status ejabberd
systemctl status mmc-agent
systemctl status pulse-xmpp-agent-relay
systemctl status pulse2-register-pxe
systemctl status pulse2-package-server
systemctl status pulse-xmpp-master-substitute-master
systemctl status pulse-xmpp-master-substitute-logger
systemctl status pulse-xmpp-master-substitute-updates
systemctl status pulse-xmpp-master-substitute-assessor
systemctl status pulse-xmpp-master-substitute-inventory
systemctl status pulse-xmpp-master-substitute-deployment
systemctl status pulse-xmpp-master-substitute-monitoring
systemctl status pulse-xmpp-master-substitute-registration
systemctl status pulse-xmpp-master-substitute-subscription
Pour un contrôle plus rapide, utilisez :
systemctl is-active NOM_DU_SERVICE
Le résultat attendu est :
active
Attention :
Selon l'installation Medulla et les fonctionnalités activées, certains services peuvent ne pas être présents. L'absence d'un service optionnel n'indique donc pas nécessairement un dysfonctionnement.
3. Identifier rapidement les services en erreur
Pour rechercher les services actuellement en échec :
systemctl --failed
Si un service Medulla apparaît dans cette liste, consultez son état :
systemctl status NOM_DU_SERVICE
puis ses derniers journaux :
journalctl -u NOM_DU_SERVICE -n 100
Conseil :
Ne redémarrez pas systématiquement un service en erreur avant d'avoir consulté ses logs. Les messages présents avant le redémarrage peuvent être essentiels pour identifier la cause de l'incident.
4. Vérifier ejabberd et XMPP
Medulla utilise XMPP pour la communication avec ses agents et plusieurs de ses composants internes.
Vérifiez que le service ejabberd fonctionne :
systemctl is-active ejabberd
Le résultat attendu est :
active
Consultez ensuite le nombre d'utilisateurs actuellement connectés :
/usr/bin/ejabberdctl stats onlineusers
et le nombre d'utilisateurs enregistrés :
/usr/bin/ejabberdctl stats registeredusers
Pour afficher les utilisateurs actuellement connectés :
ejabberdctl connected_users
Résultat attendu :
ejabberd est actif et les agents et composants Medulla attendus sont connectés à XMPP.
5. Vérifier MariaDB
Vérifiez que le service MariaDB est actif :
systemctl is-active mariadb
Le résultat attendu est :
active
Vérifiez ensuite que MariaDB accepte correctement les requêtes :
mariadb -e "SELECT 1;"
Le résultat attendu contient :
1
1
6. Vérifier le serveur de packages
Vérifiez le service du serveur de packages :
systemctl is-active pulse2-package-server
Le résultat attendu est :
active
Vérifiez également depuis l'interface Medulla qu'un package existant est correctement visible.
7. Vérifier le serveur relais
Si le serveur joue également le rôle de relais, vérifiez :
systemctl is-active pulse-xmpp-agent-relay
Le résultat attendu est :
active
Dans une architecture comportant plusieurs relais, vérifiez également que les relais attendus sont accessibles.
Une indisponibilité d'un relais peut notamment provoquer :
ABORT RELAY DOWN
ABORT ALTERNATIVE RELAYS DOWN
8. Vérifier Syncthing
Lorsque Syncthing est utilisé pour la synchronisation des packages, vérifiez son état :
systemctl is-active syncthing@syncthing
Le résultat attendu est :
active
Attention :
Un service Syncthing actif ne garantit pas à lui seul que tous les packages sont correctement synchronisés. En cas d'erreur de transfert ou de package absent sur un relais, contrôlez également la synchronisation effective.
9. Vérifier l'espace disque
Vérifiez l'espace disponible sur les systèmes de fichiers :
df -h
Portez une attention particulière au système de fichiers contenant les packages de télédistribution.
Important :
Une saturation du repository d'un relais peut empêcher la synchronisation ou la distribution de nouveaux packages sans nécessairement provoquer l'arrêt d'un service.
10. Vérifier les ressources du serveur
Contrôlez la mémoire disponible :
free -h
Contrôlez ensuite la charge du serveur :
uptime
Pour une vue dynamique :
top
Vérifiez notamment :
- la mémoire disponible ;
- l'utilisation du swap ;
- la charge système ;
- la présence d'un processus consommant anormalement des ressources.
11. Vérifier qu'une machine communique avec Medulla
Depuis l'interface Medulla, sélectionnez une machine connue comme étant allumée et vérifiez qu'elle apparaît en ligne.
Ce contrôle permet de valider simplement la chaîne de communication :
Agent
↓
Réseau
↓
XMPP / ejabberd
↓
Medulla
Si toutes les machines apparaissent hors ligne alors qu'elles sont allumées, recherchez en priorité un problème global de communication ou de service.
12. Vérifier l'inventaire
Sélectionnez une machine de test et vérifiez que ses informations d'inventaire sont disponibles dans Medulla.
Contrôlez par exemple :
- le hostname ;
- le système d'exploitation ;
- les informations réseau ;
- les logiciels installés.
Résultat attendu :
Les informations d'inventaire de la machine sont disponibles et cohérentes.
13. Tester une télédistribution
Après une maintenance importante ou une mise à jour, il est recommandé d'effectuer une télédistribution sur une machine de test.
Utilisez de préférence un package simple et sans impact fonctionnel important.
Le déploiement doit se terminer par :
DEPLOYMENT SUCCESS
Ce test valide notamment :
- la communication avec l'agent ;
- l'affectation du relais ;
- la disponibilité du package ;
- le transfert ;
- l'exécution sur la machine cible.
14. Consulter les erreurs récentes
Même lorsque tous les services sont actifs, recherchez les erreurs récentes dans les journaux.
Pour un service :
journalctl -u NOM_DU_SERVICE -n 100
Pour afficher les erreurs depuis le dernier démarrage :
journalctl -p err -b
Information :
Un service peut être active tout en rencontrant des erreurs fonctionnelles. L'état systemd ne suffit donc pas toujours à valider le bon fonctionnement du composant.
15. Checklist rapide
| Contrôle | Résultat attendu |
|---|---|
| Interface Web | Accessible |
| Authentification | Fonctionnelle |
| Services Medulla | Actifs |
systemctl --failed |
Aucun service Medulla critique en erreur |
| ejabberd | Actif |
| XMPP | Composants attendus connectés |
| MariaDB | Active et accessible |
| Serveur de packages | Actif |
| Serveur relais | Actif et accessible |
| Syncthing | Actif si utilisé |
| Espace disque | Espace disponible suffisant |
| Mémoire / charge | Pas de saturation |
| Machine de test | En ligne |
| Inventaire | Disponible |
| Télédistribution de test | DEPLOYMENT SUCCESS |
16. Que faire si un contrôle échoue ?
| Problème constaté | Diagnostic à poursuivre |
|---|---|
| Service Medulla inactif | Consulter systemctl status puis journalctl |
| ejabberd indisponible | Diagnostiquer le service XMPP |
Composant absent de connected_users |
Diagnostiquer sa connexion XMPP |
| MariaDB indisponible | Consulter l'état et les logs MariaDB |
| Relais indisponible | Diagnostiquer le serveur relais |
| Package absent d'un relais | Contrôler Syncthing et la synchronisation |
| Machine hors ligne | Consulter la FAQ « Pourquoi une machine apparaît-elle hors ligne ? » |
| Machine non enregistrée | Consulter la FAQ « Pourquoi une machine ne s'enregistre-t-elle pas ? » |
| Télédistribution en erreur | Consulter le statut et l'audit du déploiement |
17. Résumé
Un serveur Medulla peut être considéré comme globalement opérationnel lorsque :
- l'interface Web est accessible ;
- les principaux services sont actifs ;
- ejabberd fonctionne ;
- les composants attendus sont connectés à XMPP ;
- MariaDB fonctionne ;
- les serveurs relais sont disponibles ;
- les packages sont accessibles et synchronisés ;
- les ressources système ne sont pas saturées ;
- au moins une machine communique normalement avec Medulla ;
- l'inventaire fonctionne ;
- une télédistribution de test peut être effectuée avec succès.
Recommandation :
Après une maintenance ou une mise à jour importante, ne vous limitez pas à vérifier que les services sont active. Validez également le fonctionnement de bout en bout avec une machine en ligne, une remontée d'inventaire et une télédistribution de test.