Pourquoi une machine ne s’enregistre-t-elle pas ?
Lors de l'installation d'un agent Medulla, la machine doit s'enregistrer auprès du serveur afin de pouvoir apparaître correctement dans la console et utiliser les différentes fonctionnalités de Medulla.
Si une machine ne s'enregistre pas, s'enregistre de manière incomplète ou met anormalement longtemps à apparaître, plusieurs éléments peuvent être contrôlés.
Les principales causes documentées sont :
- une incohérence entre les informations de la machine et ses interfaces réseau ;
- une interface réseau blacklistée ;
- une adresse MAC dupliquée ;
- une entrée réseau orpheline dans la base Medulla ;
- un problème avec l'agent de
subscriptionchargé de participer au processus d'enregistrement.
Information :
Cette procédure concerne principalement les machines dont l'agent est installé mais dont l'enregistrement dans Medulla ne se termine pas normalement. Si une machine était auparavant correctement enregistrée et apparaît simplement hors ligne, consultez plutôt la FAQ Pourquoi une machine apparaît-elle hors ligne ?
1. Consulter les logs d'enregistrement
La première étape consiste à consulter les logs d'enregistrement de Medulla.
Recherchez notamment le nom de la machine concernée et des messages contenant :
Registering machine
incoherence between machines and network tables
Interface missing on machine
Registration incomplete for machine
Un enregistrement en erreur peut par exemple produire une séquence similaire à :
INFO - Registering machine poste-client-02@medulla-interne/...
WARNING - incoherence between machines and network tables
ERROR - Interface missing on machine poste-client-02@medulla-interne/...
ERROR - Registration incomplete for machine poste-client-02@medulla-interne/...
Attention :
Le message Registration incomplete est une conséquence du problème. Les lignes qui le précèdent permettent généralement d'identifier la cause de l'échec de l'enregistrement.
2. Incohérence entre les tables machines et network
Le message :
incoherence between machines and network tables
indique une incohérence entre les informations de la machine et celles de ses interfaces réseau enregistrées dans Medulla.
Il peut être suivi de :
Interface missing on machine
Registration incomplete for machine
Le document d'exploitation Medulla identifie plusieurs causes possibles :
- une interface réseau blacklistée ;
- une duplication d'adresse MAC ;
- une entrée présente dans la table
networkalors que la machine correspondante n'existe plus dans la tablemachines.
3. Vérifier les informations réseau de la machine
Pour diagnostiquer une incohérence, commencez par comparer les informations connues par Medulla avec la configuration réelle de la machine.
Les informations à contrôler sont notamment :
- le hostname ;
- l'adresse IP ;
- l'adresse MAC ;
- les interfaces réseau présentes sur la machine.
Une incohérence sur l'adresse MAC ou l'interface utilisée peut empêcher Medulla de terminer correctement l'enregistrement.
Conseil :
Lorsque les logs affichent Interface missing on machine, comparez en priorité l'adresse MAC indiquée dans les logs avec les interfaces réellement présentes sur la machine.
4. Vérifier la présence d'entrées réseau orphelines
Une entrée peut exister dans la table network alors que la machine à laquelle elle était associée n'existe plus dans la table machines.
Pour rechercher ces entrées :
SELECT *
FROM xmppmaster.network
WHERE machines_id NOT IN (
SELECT id
FROM xmppmaster.machines
);
Si cette requête retourne des lignes, des informations réseau orphelines sont présentes dans la base.
Attention :
La présence d'une entrée retournée par cette requête ne doit pas conduire automatiquement à sa suppression. Vérifiez d'abord qu'elle correspond bien à une donnée devenue inutile et effectuez une sauvegarde de la base avant toute correction.
5. Corriger les entrées réseau orphelines
Après avoir confirmé que les entrées identifiées sont effectivement orphelines, le document d'exploitation Medulla fournit la requête suivante pour les supprimer :
DELETE FROM xmppmaster.network
WHERE machines_id NOT IN (
SELECT id
FROM xmppmaster.machines
);
Important :
Cette commande supprime directement des données de la base Medulla. Elle doit être réservée à un administrateur Medulla, après vérification du résultat de la requête SELECT précédente et après sauvegarde de la base de données.
Après correction, laissez la machine effectuer un nouvel enregistrement et contrôlez les logs.
6. Rechercher une adresse MAC dupliquée
Une duplication d'adresse MAC peut également provoquer une incohérence pendant l'enregistrement.
Ce cas peut notamment apparaître après :
- la duplication d'une machine ;
- la création d'une machine à partir d'une image ;
- un changement de carte ou d'interface réseau ;
- la conservation d'une ancienne entrée correspondant à la machine.
Lorsque les logs signalent une incohérence d'interface, recherchez si l'adresse MAC concernée est associée à plusieurs entrées.
Information :
Le document d'exploitation identifie la duplication d'adresse MAC comme une cause possible de Registration incomplete, mais ne fournit pas de requête générique de correction pour ce cas. Il est donc recommandé d'identifier l'origine du doublon avant toute suppression.
7. Vérifier si une interface est blacklistée
Une interface blacklistée fait également partie des causes documentées pouvant produire :
Interface missing on machine
Si l'adresse MAC remontée par l'agent est correcte mais que Medulla ne conserve pas l'interface correspondante, vérifiez si cette interface entre dans les règles d'exclusion utilisées par l'installation.
Information :
Le document d'exploitation identifie l'interface blacklistée comme une cause possible mais ne fournit pas, dans cette procédure, la configuration exacte de la blacklist ni une commande de modification. Il est donc préférable de ne pas modifier la configuration sans avoir identifié la règle concernée.
8. Cas d'une machine qui met longtemps à s'enregistrer
Une autre situation documentée est celle d'une machine qui finit par s'enregistrer, mais seulement après un délai important pouvant atteindre environ une heure.
Dans ce cas, le problème peut provenir de l'agent de subscription correspondant qui n'est pas disponible sur XMPP.
Dans le log de l'agent machine, on peut retrouver une tentative de souscription :
subscribe to master_subsX agent
ainsi que la présence de la machine :
presence_available poste-client-01@... available
En fonctionnement normal, une ligne correspondant à la présence de l'agent de subscription doit également apparaître.
presence_available agent@... Available
Si cette présence n'apparaît pas, vérifiez l'état du composant de subscription.
9. Vérifier la présence XMPP de l'agent de subscription
Depuis le serveur ejabberd, utilisez :
ejabberdctl connected_users | grep master_subsX
Remplacez master_subsX par le nom de l'agent de subscription concerné.
Si la commande ne retourne aucune ligne, l'agent de subscription attendu n'est pas connecté à ejabberd.
Cela peut expliquer pourquoi les machines mettent anormalement longtemps à terminer leur enregistrement.
Attention :
Un processus ou un service peut sembler actif au niveau du système tout en n'étant pas correctement connecté à XMPP. La vérification avec connected_users permet donc de contrôler sa présence effective dans ejabberd.
10. Redémarrer le composant de subscription
Si l'agent de subscription attendu n'est pas présent dans :
ejabberdctl connected_users
le document d'exploitation recommande de redémarrer l'agent de subscription puis de vérifier de nouveau sa connexion à ejabberd.
Après le redémarrage, contrôlez :
ejabberdctl connected_users | grep master_subsX
puis surveillez l'enregistrement de la machine.
Information :
Si le composant reste absent de connected_users malgré son redémarrage, le problème se situe au niveau du composant de subscription ou de sa connexion XMPP et nécessite un diagnostic complémentaire.
11. Vérifier les enregistrements d'une machine
Pour suivre l'activité d'enregistrement, recherchez le nom de la machine dans les logs d'enregistrement.
Les lignes contenant :
Registering machine
permettent d'identifier les tentatives d'enregistrement.
Un nombre anormalement important de tentatives pour une même machine peut indiquer que celle-ci ne parvient pas à terminer durablement son processus d'enregistrement.
Dans ce cas, recherchez dans les lignes qui suivent les messages :
incoherence between machines and network tables
Interface missing on machine
Registration incomplete for machine
12. Ne pas confondre les principaux cas
| Symptôme | Cause à rechercher en priorité |
|---|---|
| La machine n'a jamais été correctement enregistrée | Agent, informations réseau et processus d'enregistrement |
Interface missing on machine |
Interface blacklistée, MAC dupliquée ou incohérence machines/network |
Registration incomplete for machine |
Analyser les erreurs qui précèdent ce message |
| La machine finit par apparaître après un long délai | Vérifier l'agent de subscription |
| L'agent de subscription est démarré mais la machine ne s'enregistre pas | Vérifier sa présence dans ejabberdctl connected_users |
| La machine était correctement enregistrée mais apparaît maintenant hors ligne | Diagnostiquer l'agent et sa communication plutôt que l'enregistrement initial |
13. Procédure de diagnostic rapide
Lorsqu'une machine ne s'enregistre pas dans Medulla, effectuez les contrôles suivants dans cet ordre :
- vérifier que l'agent Medulla est installé et fonctionne sur la machine ;
- consulter les logs d'enregistrement ;
- rechercher
Registration incompleteet les erreurs qui le précèdent ; - si
Interface missingapparaît, contrôler les interfaces et les adresses MAC ; - rechercher une incohérence entre les tables
machinesetnetwork; - rechercher une adresse MAC dupliquée ou une interface blacklistée ;
- si l'enregistrement finit par fonctionner mais après un long délai, vérifier l'agent de
subscription; - vérifier sa présence avec
ejabberdctl connected_users; - après correction, laisser l'agent effectuer un nouvel enregistrement et contrôler les logs.
14. Tableau de diagnostic rapide
| Message ou symptôme | Cause possible | Premier contrôle |
|---|---|---|
incoherence between machines and network tables |
Données machine/réseau incohérentes | Contrôler les tables machines et network |
Interface missing on machine |
Interface absente, blacklistée ou MAC incorrecte | Comparer les interfaces et adresses MAC |
Registration incomplete for machine |
Enregistrement interrompu par une erreur précédente | Lire les lignes précédentes du log |
Entrées network sans machine |
Données réseau orphelines | Exécuter la requête de contrôle |
| Adresse MAC utilisée plusieurs fois | Machine ou interface dupliquée | Identifier les entrées utilisant la même MAC |
| Enregistrement après un long délai | Agent de subscription indisponible | Contrôler connected_users |
master_subsX absent de XMPP |
Agent de subscription non connecté | Redémarrer le composant et contrôler sa connexion |
15. Informations à collecter si le problème persiste
Si la machine ne s'enregistre toujours pas, collectez les informations suivantes avant de poursuivre le diagnostic ou d'ouvrir un ticket support :
- le hostname de la machine ;
- son adresse IP ;
- ses adresses MAC ;
- les lignes du log correspondant à
Registering machine; - les éventuels messages
Interface missing; - les éventuels messages
Registration incomplete; - le résultat de la recherche d'entrées orphelines dans
network; - si l'enregistrement est simplement très lent, la présence ou non de l'agent
subscriptiondansejabberdctl connected_users.
Recommandation :
Lorsqu'une machine ne s'enregistre pas, commencez par rechercher Registration incomplete dans les logs puis analysez les messages qui le précèdent. Une erreur Interface missing oriente principalement vers les interfaces réseau, les adresses MAC ou une incohérence des données. Si l'enregistrement fonctionne mais seulement après un délai important, contrôlez en priorité la présence XMPP du composant de subscription.