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 avec deux agents enrôlés

Installez le chart Helm. 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.

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.

  • 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.