Zum Inhalt springen

Private Agents

IHR NETZ · Firewall / VPC Private Agent okstatus-agent Intranet-API db · 10.0.4.12 prüft private Ziele TLS nur ausgehendes HTTPS · kein eingehender Port · kein VPN holt Prüfungen → sendet Ergebnisse OKStatus backend.okstatus.eu Scheduler · Aggregator · Alerter Dashboard Statusseite Alarme Identity: per-agent credentials (or a one-time enrollment token) · Max plan: 5 agents · Enterprise: 20

Ein Private Agent läuft in Ihrer eigenen Infrastruktur und überwacht Dienste, die OKStatus aus dem öffentlichen Internet nicht erreicht — interne APIs, Datenbanken, Intranet-Anwendungen. Er holt seine Prüfungen über ausschließlich ausgehendes HTTPS von OKStatus: nichts freizugeben, kein eingehender Port, kein VPN. Verfügbar ab dem Tarif Max (Max: 5 Agents, Enterprise: 20).

Die Seite „Private Agents“ mit zwei registrierten Agents

Installieren Sie das Helm-Chart. Es gibt zwei Wege, dem Agent seine Identität zu geben — wählen Sie einen.

Registrieren Sie einmalig, um das langlebige Zugangsdatenpaar zu erhalten, und betreiben Sie den Agent dann aus einem Secret — kein Token zu verbrauchen, kein Volume zu erhalten, unempfindlich gegen Neustarts und Umplanungen:

Terminal-Fenster
helm install okstatus-agent okstatus/private-agent \
--set credentials.agentId=<agentId> \
--set credentials.agentSecret=<agentSecret>

Das Paar erhalten Sie auf der Seite „Private Agents”: Menü des Agents (⋮) → Zustandslose Zugangsdaten, oder Reiter Kubernetes (env) im Ausroll-Dialog und dort Zugangsdaten erzeugen. Das Geheimnis wird einmal angezeigt; ein erneutes Erzeugen ersetzt es.

Für ein einfaches Deployment (ohne Helm) heißen die entsprechenden Umgebungsvariablen OKSTATUS_AGENT_ID, OKSTATUS_AGENT_SECRET, OKSTATUS_AGENT_NAME und AGGREGATOR_URL=https://backend.okstatus.eu.

Der Agent tauscht das Token beim ersten Start ein und speichert das Ergebnis in einem kleinen PVC (erforderlich — ohne ihn braucht ein Neustart ein neues Token):

Terminal-Fenster
helm install okstatus-agent okstatus/private-agent \
--set token=oksa_live_xxxxxxxx

Das Token stammt von der Seite „Private Agents” und ist einmalig verwendbar.

Die Zugangsdaten eines Private Agent sind eine Identität. Betreiben Sie genau einen Pod je Zugangsdatenpaar:

  • Das Chart liefert bewusst replicas: 1 und strategy: Recreate — nie RollingUpdate (dessen Überhang ließe kurzzeitig zwei Pods laufen und würde Heartbeats und Prüfungen dieses Agents verdoppeln).
  • Der Server setzt es ebenfalls durch. Startet eine zweite Instanz mit denselben Zugangsdaten, weist die Einzelinstanz-Sperre des Backends sie mit 409 ab, und dieser Pod beendet sich mit dem Protokolleintrag „another instance of this agent is already running”. replicas hochzuskalieren oder ein zweites Deployment mit denselben Zugangsdaten auszurollen bringt also keinen höheren Durchsatz — die zusätzlichen Pods beenden sich einfach.

Bei einem sauberen Neustart gibt der scheidende Pod seine Sperre frei, ein Ersatz übernimmt also sofort; nach einem harten Abschuss übernimmt ein Ersatz binnen etwa 2–3 Minuten.

Sobald Ihre Organisation mindestens einen privaten Agent hat, fragt der Dialog Neuer Monitor zuerst, von wo die Checks laufen:

  • OKStatus-Netzwerk — die öffentlichen Regionen, für alles, was aus dem Internet erreichbar ist;
  • Meine privaten Agents — wählen Sie direkt einen oder mehrere Ihrer Agents. Interne Adressen (10.0.0.5, redis.internal, *.svc.cluster.local…) sind erlaubt.

Im Agent-Modus heißt die Schaltfläche Vom Agent testen: Der Test läuft auf dem ersten gewählten Agent, aus Ihrem Netzwerk, und seine echte Antwort erscheint im Dialog (zum Beispiel REDIS · bureau-lyon). Es ist eine einmalige Probe — nichts wird gespeichert, kein Alarm gesendet, der Status des Monitors ändert sich nicht. Die Test-Schaltfläche im Bearbeitungsbereich verhält sich bei einem Monitor mit ausschließlich privaten Regionen genauso.

MeldungWas tun
Kein privater Agent ist onlineDer Agent hat seit 5 Minuten keinen Heartbeat gesendet: Pod oder Dienst prüfen.
Agent … ist zu alt für TestsAgent-Image aktualisieren. Das Monitoring läuft weiter; nur die Test-Schaltfläche braucht es.
Agent … hat nicht innerhalb von 25 s geantwortetDer Agent ist online, aber ausgelastet oder von backend.okstatus.eu getrennt: Logs prüfen.
  • Der zustandslose Modus (Zugangsdaten) braucht kein persistentes Volume — der Pod lädt seine Identität bei jedem Start aus dem Secret und registriert sich nie neu.
  • Der Token-Modus braucht persistence.enabled (einen PVC), damit das bei der Registrierung erhaltene Zugangsdatum Neustarts übersteht; ohne ihn verlangt ein Neustart ein rotiertes Token.
SymptomUrsache / Abhilfe
enrollment token rejected — already used or revokedDas einmalige Token war schon verbraucht (oder Sie sind im Token-Modus ohne PVC, sodass bei jedem Start neu registriert wird). Token rotieren und aktualisieren, oder auf zustandslose Zugangsdaten wechseln.
CrashLoopBackOff direkt nach dem AusrollenFast immer das Token oben, oder die Schlüssel im Zugangsdaten-Secret sind falsch benannt (sie müssen agentId / agentSecret heißen).
409 / „another instance is already running”Zwei Pods teilen sich ein Zugangsdatenpaar. Bei replicas: 1 bleiben; für mehr Kapazität einen eigenen Agent ausrollen.
Der Agent erscheint nie im DashboardAusgehendes HTTPS zu backend.okstatus.eu prüfen und kubectl logs am Pod ansehen.
401 INVALID_AGENT_ID, oder der Agent beendet sich beim Start mit einer Klage über die IDIn OKSTATUS_AGENT_ID steht der Name des Agents — dort gehört seine UUID hin (Agent-Menü → Zustandslose Zugangsdaten).
401 UNAUTHORIZED im zustandslosen Modus, oder der Agent klagt über das GeheimnisIn OKSTATUS_AGENT_SECRET steht das Registrierungstoken oksa_live_… — dort gehört das Geheimnis oksas_… hin. Erzeugen Sie eines über das Agent-Menü.