Skip to main content

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 subscription chargé 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 network alors que la machine correspondante n'existe plus dans la table machines.

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 :

  1. vérifier que l'agent Medulla est installé et fonctionne sur la machine ;
  2. consulter les logs d'enregistrement ;
  3. rechercher Registration incomplete et les erreurs qui le précèdent ;
  4. si Interface missing apparaît, contrôler les interfaces et les adresses MAC ;
  5. rechercher une incohérence entre les tables machines et network ;
  6. rechercher une adresse MAC dupliquée ou une interface blacklistée ;
  7. si l'enregistrement finit par fonctionner mais après un long délai, vérifier l'agent de subscription ;
  8. vérifier sa présence avec ejabberdctl connected_users ;
  9. 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 subscription dans ejabberdctl 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.