Aller au contenu

Agents privés

YOUR NETWORK · firewall / VPC Private agent okstatus-agent intranet API db · 10.0.4.12 checks private targets TLS outbound HTTPS only · no inbound port · no VPN pulls checks → pushes results OKStatus backend.okstatus.eu scheduler · aggregator · alerter Dashboard Status page Alerts Identity: per-agent credentials (or a one-time enrollment token) · Max plan: 5 agents · Enterprise: 20

Un agent privé tourne dans votre propre infrastructure et surveille des services qu’OKStatus ne peut pas atteindre depuis internet — APIs internes, bases de données, apps intranet. Il récupère ses checks depuis OKStatus en HTTPS sortant uniquement : rien à exposer, aucun port entrant, pas de VPN. Disponible à partir du plan Max (Max : 5 agents, Enterprise : 20).

La page Agents privés : agents en ligne, checks en cours, checks de la dernière heure et version des agents, puis la liste et le détail d'un agent

Cliquez sur Déployer un agent et choisissez comment il tournera : Binaire (systemd) sur un hôte Linux, Docker, Helm (Kubernetes), ou Sans état (variables d’env.). La fenêtre donne la commande exacte pour chacun. La suite de cette section suit le chart Helm, où il y a deux façons de donner son identité à l’agent — au choix.

Enrôlez-vous une fois pour obtenir la paire de credentials longue durée, puis lancez l’agent depuis un Secret — aucun jeton à consommer, aucun volume à persister, résilient à tout redémarrage ou reprogrammation :

Fenêtre de terminal
helm install okstatus-agent okstatus/private-agent \
--set credentials.agentId=<agentId> \
--set credentials.agentSecret=<agentSecret>

Vous obtenez la paire depuis la page Agents privés : menu de l’agent (⋮) → Credentials stateless, ou l’onglet Kubernetes (env) du dialogue de déploiement puis Générer les credentials. Le secret n’est affiché qu’une seule fois ; régénérer le remplace.

Pour un Deployment sans Helm, les variables d’environnement équivalentes sont OKSTATUS_AGENT_ID, OKSTATUS_AGENT_SECRET, OKSTATUS_AGENT_NAME et AGGREGATOR_URL=https://backend.okstatus.eu.

L’agent échange le jeton au premier démarrage et persiste le résultat dans un petit PVC (requis — sans lui, un redémarrage nécessite un nouveau jeton) :

Fenêtre de terminal
helm install okstatus-agent okstatus/private-agent \
--set token=oksa_live_xxxxxxxx

Le jeton vient de la page Agents privés et est à usage unique.

Les quatre chiffres du haut couvrent le parc : agents en ligne sur ceux enrôlés, checks en cours par rapport à la capacité totale, checks exécutés sur la dernière heure, et nombre d’agents en retard sur la dernière version. Sélectionner un agent ouvre son détail : checks simultanés, checks et taux d’échec sur la dernière heure, une bande des heartbeats des 60 dernières minutes (un heartbeat manqué y laisse un trou), sa version, son nom d’hôte, son IP privée, sa plateforme et depuis quand il tourne.

Un agent déployé mais pas encore connecté affiche En attente de la première connexion.

Un agent = une seule instance en cours d’exécution

Section intitulée « Un agent = une seule instance en cours d’exécution »

Les credentials d’un agent privé sont une identité unique. Exécutez exactement un pod par credential :

  • Le chart fournit replicas: 1 et strategy: Recreate à dessein — jamais RollingUpdate (son surge ferait tourner brièvement deux pods et doublerait les heartbeats et les checks de cet agent).
  • Le serveur l’impose aussi. Si une seconde instance démarre avec les mêmes credentials, le lease mono-instance du backend la rejette avec un 409 et ce pod s’arrête, en journalisant « another instance of this agent is already running ». Augmenter replicas, ou appliquer un second Deployment avec les mêmes credentials, ne donne pas plus de débit — les instances en trop s’arrêtent.

Lors d’un redémarrage propre, le pod partant libère son lease, donc un remplaçant prend le relais immédiatement ; après un kill brutal, un remplaçant prend le relais en ~2–3 minutes.

Dès que votre organisation a au moins un agent privé, la fenêtre Nouveau monitor demande d’abord d’où partent les checks :

  • Réseau OKStatus — les régions publiques, pour ce qui est joignable depuis Internet ;
  • Mes agents privés — choisissez directement un ou plusieurs de vos agents. Les adresses internes (10.0.0.5, redis.internal, *.svc.cluster.local…) sont autorisées.

En mode agent, le bouton devient Tester depuis l’agent : le test est exécuté par le premier agent sélectionné, depuis votre réseau, et sa vraie réponse s’affiche dans la fenêtre (par exemple REDIS · bureau-lyon). C’est une sonde ponctuelle : rien n’est enregistré, aucune alerte n’est envoyée, le statut du monitor ne change pas. Le bouton Tester du panneau d’édition fait de même pour un monitor dont toutes les régions sont privées.

MessageQue faire
Aucun agent privé en ligneL’agent n’a pas envoyé de heartbeat depuis 5 minutes : vérifiez le pod ou le service.
L’agent … est trop ancien pour les testsMettez à jour l’image de l’agent. La surveillance continue ; seul le bouton Tester en a besoin.
L’agent … n’a pas répondu en 25 sL’agent est en ligne mais saturé ou coupé de backend.okstatus.eu : consultez ses logs.

Les identifiants que porte un monitor — en-têtes et corps personnalisés, Basic auth, mots de passe de base de données, SMTP, IMAP ou Redis, clé d’API d’un fournisseur d’IA — sont chiffrés pour l’agent qui exécute le contrôle avant de quitter OKStatus. Chaque agent dérive une paire de clés de son propre secret et ne publie que la moitié publique ; les identifiants traversent la file des contrôles chiffrés, et seul cet agent peut les ouvrir. Rien à configurer : renouveler le secret de l’agent renouvelle aussi sa clé.

Il faut un agent en version 1.1.0 ou plus récente (image okstatus-agent 1.1.0, chart Helm private-agent 0.6.0). Un agent plus ancien ne peut pas lire ces identifiants : mettez-le à jour, sinon ses monitors qui portent des identifiants ne sont pas exécutés et le bouton Tester indique que l’agent n’a pas encore de clé de chiffrement.

  • Le mode sans état (credentials) ne nécessite aucun volume persistant — le pod charge son identité depuis le Secret à chaque démarrage et ne se ré-enrôle jamais.
  • Le mode jeton nécessite persistence.enabled (un PVC) pour que le credential enrôlé survive aux redémarrages ; sans lui, un redémarrage nécessite un jeton renouvelé.
SymptômeCause / solution
enrollment token rejected — already used or revokedLe jeton à usage unique a déjà été consommé (ou vous êtes en mode jeton sans PVC, donc il se ré-enrôle à chaque démarrage). Renouvelez le jeton et mettez à jour, ou passez aux credentials sans état.
CrashLoopBackOff juste après le déploiementPresque toujours le jeton ci-dessus, ou des clés de Secret mal nommées (doivent être agentId / agentSecret).
409 / « another instance is already running »Deux pods partagent un credential. Gardez replicas: 1 ; déployez un agent séparé pour plus de capacité.
L’agent n’apparaît jamais sur le dashboardVérifiez l’egress HTTPS sortant vers backend.okstatus.eu, et kubectl logs sur le pod.
401 INVALID_AGENT_ID, ou l’agent quitte au démarrage en se plaignant de l’idOKSTATUS_AGENT_ID contient le nom de l’agent — il faut son UUID (menu de l’agent → Credentials stateless).
401 UNAUTHORIZED en mode stateless, ou l’agent quitte en se plaignant du secretOKSTATUS_AGENT_SECRET contient le jeton d’enrôlement oksa_live_… — il faut le secret oksas_…. Générez-en un depuis le menu de l’agent.