Skip to main content

Pourquoi une machine apparaît-elle hors ligne ?

Une machine peut apparaître hors ligne dans Medulla alors qu'elle est toujours présente dans l'inventaire.

Ce statut signifie que Medulla ne reçoit plus correctement la présence de l'agent de la machine.

Plusieurs causes sont possibles :

  • la machine est réellement éteinte ou inaccessible ;
  • le service MedullaAgent n'est plus fonctionnel ;
  • l'agent se reconfigure ou redémarre en boucle ;
  • la communication avec Medulla est interrompue ;
  • la machine rencontre un problème d'enregistrement ;
  • une incohérence existe dans les informations réseau de la machine.

Information :
Il est recommandé de commencer par vérifier la machine cliente et les logs de son agent avant d'effectuer des modifications sur le serveur Medulla.


1. Vérifier que la machine est réellement disponible

Commencez par vérifier que la machine est allumée et accessible sur le réseau.

Depuis un équipement pouvant joindre la machine :

ping IP_DE_LA_MACHINE

Si la machine ne répond pas, vérifiez notamment :

  • qu'elle est allumée ;
  • qu'elle est connectée au réseau ;
  • qu'elle dispose toujours d'une adresse IP valide ;
  • qu'aucun filtrage réseau n'empêche sa communication avec Medulla.

Remarque :
L'absence de réponse au ping ne permet pas toujours de conclure que la machine est éteinte, certains environnements pouvant bloquer ICMP. Ce test constitue uniquement une première vérification.


2. Consulter les logs de l'agent Medulla

Sur une machine Windows, le journal principal de l'agent Medulla est :

C:\Program Files\Medulla\var\log\xmpp-agent-machine.log

Ce fichier permet notamment de vérifier :

  • le démarrage de l'agent ;
  • les tentatives de connexion ;
  • les opérations d'enregistrement ;
  • les reconfigurations de l'agent ;
  • la présence d'erreurs répétées.

Lorsqu'une machine apparaît hors ligne dans Medulla, ce journal constitue l'un des premiers éléments à analyser.


3. Vérifier si l'agent se reconfigure en boucle

Le document d'exploitation Medulla indique qu'une machine qui ne remonte plus correctement peut être affectée par des reconfigurations répétées de l'agent.

Dans le log :

C:\Program Files\Medulla\var\log\xmpp-agent-machine.log

recherchez le message :

We start a reconfiguration of the medulla agent

Pour compter le nombre d'occurrences sous Windows :

find /c "We start a reconfiguration of the medulla agent" "C:\Program Files\Medulla\var\log\xmpp-agent-machine.log"

Si ce message apparaît un grand nombre de fois dans le même fichier, par exemple plusieurs dizaines de fois, cela peut indiquer que l'agent se reconfigure de manière anormale.

Attention :
Un redémarrage ou une reconfiguration ponctuelle de l'agent n'est pas nécessairement anormal. C'est surtout la répétition fréquente de ce comportement qui doit être analysée.


4. Redémarrer l'agent Medulla

Si les logs indiquent un comportement anormal de l'agent, le document d'exploitation propose de redémarrer celui-ci afin de vérifier si son fonctionnement se stabilise.

Sur la machine Windows :

sc stop medullaagent

Puis arrêtez les processus Python encore actifs liés à l'agent si nécessaire :

taskkill /F /IM python.exe

Redémarrez ensuite l'agent :

sc start medullaagent

Surveillez le fichier :

C:\Program Files\Medulla\var\log\xmpp-agent-machine.log

afin de vérifier que l'agent redémarre normalement et que la machine se reconnecte à Medulla.

Attention :
La commande taskkill /F /IM python.exe arrête tous les processus python.exe de la machine. Elle ne doit être utilisée que si vous avez vérifié qu'aucune autre application importante n'utilise Python sur le poste concerné.


5. Vérifier le compte XMPP de la machine

Medulla utilise XMPP pour la communication avec ses agents.

Dans certains cas documentés, lorsqu'un agent est bloqué dans un cycle de reconfiguration, il peut être nécessaire de supprimer son ancien enregistrement ejabberd avant de laisser l'agent se réenregistrer.

Depuis le serveur ejabberd :

ejabberdctl unregister NOM_DU_COMPTE pulse

Redémarrez ensuite l'agent Medulla sur la machine :

sc start medullaagent

Attention :
La suppression d'un compte ejabberd provoque la suppression de son enregistrement XMPP. Cette manipulation doit être effectuée uniquement lorsqu'un problème d'enregistrement ou de reconfiguration a été clairement identifié.


6. Vérifier l'état connu de la machine dans Medulla

Le dernier état connu de la machine peut être consulté dans la table uptime_machine.

SELECT *
FROM uptime_machine
WHERE hostname = "NOM_DE_LA_MACHINE"
ORDER BY id DESC
LIMIT 1\G;

Le champ status indique l'état enregistré :

  • 1 : la machine est considérée comme en ligne ;
  • 0 : la machine est considérée comme éteinte ou hors ligne.

Le champ updowntime indique depuis combien de temps la machine se trouve dans cet état.

Cette information permet notamment de comparer l'état affiché dans Medulla avec la situation réelle de la machine.


7. Vérifier si la machine redémarre ou se reconnecte en boucle

Il est également possible de rechercher dans la base xmppmaster les machines qui remontent plusieurs fois comme disponibles sur une courte période.

Le document d'exploitation fournit la requête suivante :

SELECT COUNT(*) AS restartmach, hostname
FROM xmppmaster.uptime_machine
WHERE status = 1
  AND updowntime < 100
  AND date > (NOW() - INTERVAL 1 HOUR)
GROUP BY hostname
HAVING restartmach > 2;

Cette requête permet d'identifier les machines ayant plusieurs changements d'état rapprochés et pouvant présenter un comportement anormal.

Information :
Le document d'exploitation associe cette requête à la recherche de machines pouvant démarrer ou se reconnecter en boucle.


8. Vérifier les informations réseau de la machine

Une incohérence entre les informations de la machine et ses interfaces réseau peut empêcher son enregistrement correct.

Pour afficher les informations réseau connues dans Medulla :

SELECT
    m.hostname,
    m.ippublic,
    m.ip_xmpp,
    m.macaddress AS machine_mac,
    n.ipaddress AS network_ip,
    n.broadcast,
    n.gateway,
    n.mask,
    n.mac AS network_mac
FROM xmppmaster.machines AS m
INNER JOIN xmppmaster.network AS n
    ON n.machines_id = m.id
WHERE m.hostname = 'NOM_DE_LA_MACHINE';

Vérifiez notamment la cohérence :

  • du hostname ;
  • de l'adresse IP ;
  • de l'adresse MAC ;
  • des informations de l'interface réseau.

9. Cas d'une incohérence entre machines et network

Dans certains cas, l'enregistrement d'une machine peut échouer avec des messages similaires à :

incoherence between machines and network tables

Interface missing on machine

Registration incomplete for machine

Plusieurs causes sont mentionnées dans le document d'exploitation :

  • interface réseau blacklistée ;
  • duplication d'adresse MAC ;
  • entrée présente dans la table network sans machine correspondante.

Pour rechercher des entrées réseau orphelines :

SELECT *
FROM xmppmaster.network
WHERE machines_id NOT IN (
    SELECT id FROM xmppmaster.machines
);

Attention :
Une anomalie dans les tables machines ou network concerne davantage un problème d'enregistrement qu'un simple statut hors ligne. La correction de ces incohérences sera traitée dans la FAQ dédiée à l'enregistrement des machines.


10. Vérifier l'attribution du serveur relais

Une machine doit disposer d'un serveur relais correctement attribué pour certaines opérations Medulla.

Les informations réseau obtenues précédemment peuvent permettre de vérifier si la machine se trouve sur le réseau attendu.

Le champ groupdeploy de la table machines contient l'information d'affectation du relais utilisé pour le déploiement.

Si la machine présente également des erreurs telles que :

ABORT RELAY DOWN
ABORT INFO RELAY MISSING

le diagnostic doit être poursuivi au niveau du serveur relais et de son affectation.


11. Ne pas confondre machine hors ligne et problème d'enregistrement

Deux situations différentes peuvent produire des symptômes proches :

Situation Interprétation
La machine était auparavant en ligne mais ne communique plus Diagnostiquer principalement l'agent, la connectivité et XMPP
La machine n'a jamais correctement remonté dans Medulla Diagnostiquer son enregistrement
La machine apparaît puis disparaît régulièrement Rechercher un redémarrage ou une reconfiguration répétée de l'agent
Les logs contiennent Interface missing ou Registration incomplete Rechercher une incohérence d'enregistrement ou d'interface réseau

12. Procédure de diagnostic rapide

Lorsqu'une machine apparaît hors ligne dans Medulla, effectuez les contrôles suivants dans cet ordre :

  1. vérifier que la machine est allumée et accessible ;
  2. consulter xmpp-agent-machine.log ;
  3. vérifier si l'agent se reconfigure de manière répétée ;
  4. vérifier et, si nécessaire, redémarrer le service MedullaAgent ;
  5. vérifier le dernier état de la machine dans uptime_machine ;
  6. contrôler la cohérence de ses informations réseau ;
  7. si les logs indiquent un problème d'enregistrement, poursuivre avec la procédure correspondante.

13. Tableau de diagnostic

Symptôme Contrôle Action
Machine physiquement éteinte Vérifier son alimentation et son réseau Remettre la machine en ligne
Agent arrêté Contrôler MedullaAgent Redémarrer le service
Reconfigurations répétées Rechercher We start a reconfiguration... Diagnostiquer l'agent et son enregistrement
Machine considérée offline par Medulla Consulter uptime_machine Comparer avec l'état réel du poste
Interface manquante Consulter machines et network Poursuivre le diagnostic d'enregistrement
Adresse MAC dupliquée Contrôler les informations réseau Identifier la machine en doublon
Relais incorrect ou indisponible Contrôler l'affectation du relais Diagnostiquer le serveur relais

14. Informations à collecter si le problème persiste

Avant de poursuivre le diagnostic ou d'ouvrir un ticket support, collectez :

  • le nom de la machine ;
  • son adresse IP ;
  • la date et l'heure depuis lesquelles elle apparaît hors ligne ;
  • le fichier xmpp-agent-machine.log ;
  • l'état du service MedullaAgent ;
  • le dernier état disponible dans uptime_machine ;
  • les éventuels messages Interface missing ou Registration incomplete ;
  • le serveur relais associé à la machine si le problème concerne également les déploiements.

Recommandation :
Lorsqu'une machine apparaît hors ligne, commencez par déterminer si le problème vient de la machine elle-même, de l'agent Medulla ou de son enregistrement. La consultation du fichier xmpp-agent-machine.log et du dernier état connu dans uptime_machine permet généralement d'orienter rapidement le diagnostic.