Passer au contenu principal

Dépannage hors ligne

Diagnose why a Level device shows offline — AV/EDR interference, network requirements, and the --check diagnostic command.

Introduction

Si un appareil apparaît hors ligne dans Level alors qu'il est en réalité allumé et connecté, la cause est presque toujours une interférence AV/EDR ou un pare-feu bloquant les connexions sortantes de l'agent. Commencez par la commande --check — elle identifie le point de défaillance exact sans conjectures.

ℹ️ REMARQUE : Dans la plupart des cas, Level fonctionne sans aucune modification du pare-feu. Les exigences réseau ci-dessous ne s'appliquent que si vous êtes sur un réseau restrictif et rencontrez activement des problèmes de connectivité.


Dépannage hors ligne

Étape 1 : Exécuter le diagnostic

Exécuter --check sur l'appareil concerné pendant qu'il dispose d'un accès réseau. Il teste chaque partie de la connectivité de l'agent vers Level et indique précisément où se situe la défaillance.

🖥️ NOTE DE PLATEFORME :

  • Windows :& 'C:\Program Files\Level\level.exe' --check

  • macOS :sudo /usr/local/bin/level --check

  • Linux :sudo /usr/local/bin/level --check

Windows --check Example

Les deux sections sur lesquelles se concentrer :

Vérifications Level — indique si le service de l'agent et la tâche de surveillance sont dans l'état attendu (Running / Ready). Si l'une ou l'autre présente un problème, l'AV/EDR a très probablement mis en quarantaine le binaire de l'agent. Le chien de garde maintient le service en fonctionnement dans des conditions normales — s'il ne le fait pas, quelque chose d'externe l'a arrêté.

Vérifications de connexion — affiche l'état de online.level.io, agents.level.io, uptime monitor, et realtime client. Les trois premières sont des vérifications ping (ICMP), tandis que realtime client indique la connexion en temps réel distincte de l'agent. Error: no ping stats signifie que la vérification ping n'a reçu aucune réponse ICMP. Si le client en temps réel est Connected, l'agent conserve sa connexion en temps réel même lorsqu'une ou plusieurs vérifications ping échouent.


Étape 2 : Interférence AV/EDR

Si --check indique que le service ou le chien de garde n'est pas dans l'état attendu, ou si --check ne s'exécute pas du tout, vérifiez si le binaire Level est toujours présent sur le disque :

🖥️ NOTE DE PLATEFORME :

  • Windows : recherchez level.exe dans C:\Program Files\Level\

  • macOS : recherchez level à /Applications/Level.app/Contents/MacOS/level

  • Linux : recherchez level à /usr/local/bin/level

Si le binaire est absent, l'AV/EDR l'a supprimé. Level ne dispose d'aucun mécanisme pour supprimer son propre binaire — un exécutable manquant signifie que votre logiciel de sécurité l'a mis en quarantaine ou supprimé.

Pour investiguer : Consultez le journal de quarantaine de votre logiciel de sécurité et l'historique des activités autour du moment où l'appareil s'est mis hors ligne. Recherchez toute action entreprise contre level.exe ou les processus associés. Certains produits — SentinelOne, ESET et certaines configurations de Defender — le font silencieusement sans alerte visible.

Pour corriger : Restaurez le binaire depuis la quarantaine si possible, puis ajoutez les exclusions appropriées avant de réinstaller. Consultez Fausses détections AV/EDR pour les chemins d'exclusion, les détails du certificat et une automatisation Windows Defender que vous pouvez déployer sur plusieurs appareils. Si le binaire est toujours présent mais que le service est arrêté, les mêmes étapes d'exclusion s'appliquent — l'AV bloque probablement l'exécution plutôt que de supprimer le fichier.

⚠️ AVERTISSEMENT : Si vous réinstallez l'agent sans ajouter d'exclusions au préalable, l'AV/EDR supprimera à nouveau le binaire. Ajoutez les exclusions avant de réinstaller. À noter également : Les détections AV/EDR contre Level sont basées sur le comportement, et non sur les signatures. Cela signifie que le même logiciel de sécurité peut fonctionner sur 50 appareils et ne signaler Level que sur quelques-uns — cela dépend de ce que l'agent faisait au moment où la détection a été déclenchée, et non d'une mise à jour de définitions. Ne supposez pas qu'un appareil propre signifie que vos exclusions fonctionnent correctement.


Étape 3 : Vérifier l'accès réseau

Si la section Vérifications Level semble saine mais Vérifications de connexion indiquent des échecs, comparez les trois vérifications ping avec realtime client:

  • Si realtime client affiche également une erreur, l'agent peut être dans l'impossibilité d'atteindre les serveurs de Level. Vérifiez si un pare-feu ou un proxy bloque les connexions sortantes ci-dessous.

  • Si les vérifications ping indiquent Error: no ping stats tandis que realtime client est Connected, vérifiez si le pare-feu de l'appareil ou du réseau bloque l'ICMP. Ce résultat seul ne signifie pas que la connexion en temps réel de l'agent est bloquée.

L'agent a besoin d'un accès sortant vers ces URL :

URL

Objectif

agents.level.io

Communication de l'agent avec Level

online.level.io

Vérifications de l'état de la connectivité

builds.level.io

Mises à jour de l'agent

downloads.level.io

Installation initiale de l'agent

realtime.ably.io

WebSocket en temps réel pour l'API Level

prd-level-storage.s3.wasabisys.com

Stockage de fichiers pour les automatisations

global.turn.twilio.com

Relais TURN (utilisé en cas d'échec du P2P)

global.stun.twilio.com

STUN (utilisé en cas d'échec du P2P)

logs.logdna.com

Collecte de journaux pour le dépannage

💡 CONSEIL : Pour les pare-feux prenant en charge les règles avec caractères génériques, *.level.io et *.twilio.com couvrent les entrées Level et Twilio ci-dessus.

Dépanner les connexions WebSocket filtrées

Autoriser un nom d'hôte ne permet pas toujours la connexion en temps réel. Un filtre de contenu, un pare-feu ou un proxy peut toujours bloquer, inspecter, réécrire ou fermer le trafic WebSocket.

Si realtime client signale une erreur sur un réseau filtré, demandez à l'administrateur réseau ou au fournisseur de filtrage de :

  • Autoriser les connexions WebSocket TCP 443 sortantes vers *.ably.io et *.ably-realtime.com.

  • Permettre la mise à niveau WebSocket pour ces hôtes.

  • Contourner l'inspection SSL/TLS, l'inspection approfondie des paquets (DPI), l'inspection des menaces et la réécriture de contenu pour ces hôtes.

  • S'assurer que les politiques de délai d'expiration des proxies et des sessions ne mettent pas fin aux connexions WebSocket de longue durée.

Ces paramètres sont des exigences de dépannage pour les réseaux filtrés. Une erreur du client en temps réel ne prouve pas, à elle seule, que le filtrage en est la cause. Après avoir modifié la politique réseau, exécutez --check à nouveau et confirmez que realtime client indique Connected.

Ports requis (sortants uniquement) :

Port

Protocole

Objectif

Notes

80

TCP

HTTP

Connectivité de base

443

TCP

HTTPS

Trafic principal de l'agent

3478

TCP & UDP

TURN

Utilisé en cas d'échec du P2P

5349

TCP

TURN TLS

Recours de dernier resort uniquement

10 000–60 000

UDP

Ports de relais TURN

Alloués par Twilio lorsque TURN est utilisé

ℹ️ REMARQUE : Les ports 3478, 5349 et la plage UDP ne sont nécessaires que lorsque les connexions P2P ne peuvent pas être établies. Commencez par 80 et 443 — cela couvre la grande majorité des scénarios. Voir Dépannage du relais/P2P si les connexions à distance sont spécifiquement en échec.


Étape 4 : Contacter le support

Si --check ne pointe pas vers une cause claire, contactez le support Level avec :

  • La sortie complète de --check

  • Logiciel AV/EDR utilisé (nom et version)

  • Tout pare-feu ou proxy entre l'appareil et Internet


FAQ

  • Pourquoi l'agent envoie-t-il des pings vers 8.8.8.8, et pourquoi --check affiche-t-il Error: no ping stats alors que le temps réel est Connected ? L'agent exécute une sonde de latence intégrée (ICMP vers 8.8.8.8, environ toutes les 50 secondes). Cette sonde est distincte de Moniteur de ping réseau et est codé en dur aujourd'hui — il n'existe aucun paramètre pour changer la cible ou désactiver uniquement cette sonde. L'ICMP n'est pas requis pour l'API principale de l'agent ni pour la connexion en temps réel. Si l'appareil ou le réseau bloque l'ICMP, --check peut indiquer Error: no ping stats pour online.level.io, agents.level.io, ainsi que le moniteur de disponibilité et la valeur de ping moyen peuvent rester vides — même lorsque realtime client affiche Connected. Voir Moniteur de ping réseau.

  • L'appareil était en ligne hier et vient de passer hors ligne. Par où commencer ? Exécutez --check en premier. S'il ne s'exécute pas du tout, vérifiez si level.exe (Windows) ou le level le binaire (macOS/Linux) est toujours présent sur le disque — s'il est absent, l'AV/EDR l'a supprimé. Si le binaire est présent mais que --check indique que le service est arrêté ou que des vérifications de connexion ont échoué, consultez Fausses détections AV/EDR pour l'investigation du journal de quarantaine et les étapes d'exclusion.

  • Je n'ai aucun moyen d'accéder à l'appareil à distance en ce moment. Que puis-je faire ? Si Level est votre seul outil d'accès à distance sur l'appareil, vous aurez besoin d'un accès physique ou hors bande (iDRAC, iLO, KVM, etc.) pour investiguer. Une fois que vous avez accès, exécutez --check pour identifier la cause avant de faire quoi que ce soit d'autre.

  • Dois-je ouvrir tous ces ports dans mon pare-feu ? Pas nécessairement, sauf si vous rencontrez des problèmes. La plupart des réseaux fonctionnent avec simplement les ports 80 et 443 en sortant. Les ports TURN (3478, 5349) et la plage UDP ne sont pertinents que si les connexions P2P échouent — voir Dépannage du relais/P2P avant d'ouvrir des ports supplémentaires.

  • La sortie de --check semble correcte mais l'appareil est toujours affiché hors ligne dans Level. La console peut mettre une à deux minutes à se mettre à jour après le rétablissement de la connectivité. Si elle ne se met pas à jour, le problème peut être intermittent — essayez d'exécuter --check à nouveau lorsque l'état hors ligne réapparaît pour détecter la défaillance sur le vif.

Avez-vous trouvé la réponse à votre question ?