Zum Hauptinhalt springen

SaaS-Agent ohne Root-Rechte

Installieren Sie den Connector mit einem normalen Linux-Benutzer auf einem Host mit RFC-Verbindung zu SAP und Zugriff auf den exakten, in der Tenant Console angezeigten SPOT-Ursprung. Produktion verwendet HTTPS. Die Entwicklungsumgebung kann HTTP mit einer expliziten Ausnahme und einer sichtbaren Warnung anzeigen. Generationen, Status und Logs liegen unter $HOME; /opt, /etc und /var werden nicht beschrieben.

Vor der Installation​

  1. Erstellen Sie als Tenant-Admin den Connector unter Tenant console > Connectors.
  2. Bewahren Sie den einmal angezeigten Installationscode auf. Er läuft nach 30 Minuten ab.
  3. Öffnen Sie Add agent guide und erzeugen Sie die temporäre Bootstrap-URL.
  4. Führen Sie die Anleitung auf dem Zielhost als späteren Service-Benutzer aus.

Connectors in der Tenant Console

Paket und Umgebung wählen​

Die Anleitung und Download verified bootstrap zeigen Development candidate, wenn die Entwicklungsumgebung einen vertrauenswürdigen, aktiven Kandidaten für Tests bereitstellt. Sie wählen die neueste gültige Generation mit passendem Bootstrap und signiertem Linux-amd64-Runtime aus demselben Release. Produktion zeigt Stable package und erlaubt nur vertrauenswürdige stabile Pakete.

Fehlen eine gültige Identität, der Bootstrap oder der passende verifizierte Runtime, bleibt die Installation gesperrt und Generate deaktiviert. Wechseln Sie dafür nicht die Umgebung und umgehen Sie keine Prüfung.

Testen Sie den Kandidaten in Entwicklung, bevor Sie eine manuelle Promotion in Produktion anfordern. Eine erzeugte URL oder ein Bootstrap-Download aktualisiert keinen bestehenden Connector und enrolt ihn nicht neu. Request upgrade bleibt auf dem stabilen Kanal; ein angezeigter Entwicklungskandidat wird dadurch nicht für automatische Upgrades freigegeben.

Bootstrap herunterladen​

Laden Sie das kleine, in der Konsole angezeigte Programm herunter und prüfen Sie vor der Ausführung dessen SHA-256:

wget -O spot-connector-bootstrap_<version>_linux_amd64 \
"<temporary-bootstrap-url>"
echo '<bootstrap-sha256> spot-connector-bootstrap_<version>_linux_amd64' | sha256sum -c -
chmod 0755 spot-connector-bootstrap_<version>_linux_amd64

Laden oder entpacken Sie den Runtime-Tarball nicht manuell und verwenden Sie kein curl | sh. Der Bootstrap enthält den öffentlichen TUF-Root seiner Umgebung und prüft aktuelle Metadaten sowie den Runtime-Digest vor jedem Entpacken oder Ausführen. Jede Umgebung verwendet einen eigenen vertrauenswürdigen Root und ein eigenes Repository; eine Produktionsinstallation vertraut niemals einem nicht produktiven Root.

Wenn die Konsole meldet, dass kein vertrauenswürdiger Bootstrap von Platform synchronisiert wurde, brechen Sie ab: Es gibt keinen Fallback auf ein altes Tarball oder einen ungeprüften Download.

Installieren und enrolen​

Aktivieren Sie einmal linger, damit der Benutzer-Service nach dem Logout weiterläuft:

sudo loginctl enable-linger "$USER"
loginctl show-user "$USER" -p Linger --value

Führen Sie den exakten Befehl aus Add agent guide aus:

./spot-connector-bootstrap_<version>_linux_amd64 \
--control-plane '<tenant-control-plane-url>' \
--target '<trusted-runtime-target>' \
--version '<connector-version>' \
--start-mode systemd-user

Ersetzen Sie den angezeigten Ursprung nicht durch einen anderen Host. --control-plane muss immer den kanonischen SaaS-Ursprung des Tenants verwenden. Die temporäre URL lädt nur den Bootstrap und darf einen separaten Download-Endpunkt verwenden; sie wird niemals zum Control Plane. Bei HTTP ergänzt der erzeugte Befehl --development-http. Diese sichtbare Ausnahme ist auf den kanonischen SaaS-Host oder Loopback begrenzt und wird im Service-Launcher gespeichert. HTTP authentifiziert den Server nicht; entfernen Sie die Ausnahme nach der Umstellung auf HTTPS. TUF- und Digest-Prüfung bleiben immer verpflichtend.

Geben Sie den Code nur in der verdeckten Eingabeaufforderung ein. Er gehört nie in URL, Argumente, Shell-Verlauf, Logs oder stdout. Für Automatisierung akzeptiert --install-code-file eine temporäre Datei mit Modus 0600, die danach gelöscht wird.

Der Connector erzeugt sein dauerhaftes 256-Bit-Credential lokal; SPOT speichert nur dessen Hash. $HOME/.config/spot/connector.json wird atomar mit Modus 0600 geschrieben und darf nicht geteilt werden.

stat -c '%a %n' "$HOME/.config/spot/connector.json"

Service prüfen​

systemctl --user status spot-agent-saas.service --no-pager
journalctl --user -u spot-agent-saas.service -n 80 --no-pager
readlink "$HOME/spot-agent-saas/current"

Die Karte wechselt erst nach Authentifizierung, angewendeter Konfiguration, gesundem Heartbeat und wiederaufgenommener Telemetrie von Pending zu OK.

Eine kanonische Installation behält current -> generations/<version>. Der Runtime erkennt außerdem das flache current/, das ein betroffener Updater hinterlassen hat, und normalisiert es beim nächsten Update atomar. Zustand und vorige Generation bleiben erhalten. Erzeugen Sie den Link nicht manuell und verschieben Sie diese Verzeichnisse nicht; dadurch könnten Binärdatei, SDK, Zustand und Konfiguration getrennt werden.

Wenn das Journal current/scripts/env.sh: No such file or directory meldet, stoppen Sie den Service und prüfen Sie seine Unit:

systemctl --user cat spot-agent-saas.service
test -x "$HOME/spot-agent-saas/bin/spot-agent-saas"
test -x "$HOME/spot-agent-saas/scripts/env.sh"

Wenn ein alter Connector das Update überhaupt nicht beziehen kann, behalten Sie $HOME/.config/spot/connector.json und verwenden Sie den neuesten verifizierten Bootstrap als Recovery-Bridge. Re-Enrollment oder Löschen des Credentials ist nicht nötig. Diese Bridge ist eine Ausnahme. systemctl --user enable --now startet eine bereits aktive Unit nicht neu: Zeigt die Karte weiterhin die alte Version, führen Sie einmal systemctl --user restart spot-agent-saas.service aus. Das nächste Update muss sich ohne Eingriff selbst aktivieren.

Wenn Benutzer-systemd nicht verfügbar ist, verwenden Sie einen neuen Bootstrap-Lauf mit neuem Code und --start-mode nohup.

Ressourcenprofil und Prüfung​

Die signierte Benutzer-systemd-Unit wendet CPUQuota=200%, MemoryHigh=1G und MemoryMax=1280M auf den gesamten Prozess an. Der Runtime behält GOMAXPROCS=2 und GOMEMLIMIT=320MiB bei; letzteres ist ein weiches Ziel für den von Go verwalteten Speicher, keine harte Obergrenze und keine Grenze für den gesamten nativen Speicher des RFC SDK. MemoryHigh erzeugt Speicherdruck vor der harten cgroup-Grenze MemoryMax.

Prüfen Sie nach Installation oder Update die effektiven Service-Eigenschaften und die zugehörige PID. SPOT behält das zuvor bestätigte Profil bei, solange die Gesundheit der neuen Generation geprüft wird, und wendet erst danach die neue signierte Unit an. Ein temporärer Override kann den laufenden Service ändern, belegt aber nicht, dass das Profil für den nächsten Start installiert ist.

Messen Sie RSS/PSS, memory.high-Ereignisse, PSI und den Fortschritt der Sammlungen unter repräsentativer SAP-Last mit Headroom für den übrigen Host. Ein größerer Spielraum für nativen Speicher beweist weder eine behobene Speicherlücke noch unbegrenzte Stabilität oder Kompatibilität mit jedem SAP-System. Umgehen Sie keine Health- oder Rollback-Prüfung, um ein Update zu erzwingen.

Updates und Rollback​

SPOT fordert stable-Versionen automatisch gemäß der zugewiesenen Rollout-Welle an. Connectors > Actions > Request upgrade bleibt, sofern verfügbar, eine einmalige administrative Aktion; ein Downgrade von einer neueren candidate auf die letzte stable wird nie angeboten. Der Supervisor prüft TUF, installiert eine getrennte Generation, wechselt current atomar und bestätigt Start, Konfiguration, Authentifizierung, Heartbeat und Telemetrie. Ohne bestätigte Gesundheit stellt er automatisch die vorige Generation wieder her.

Für Updates ist kein Re-Enrollment nötig; ersetzen Sie den Tarball nicht manuell und starten Sie den Dienst bei einem normalen Update nicht neu: Die neue Generation aktiviert sich selbst. SPOT verteilt stable in Wellen und kann bei verschlechterten Heartbeats, Telemetrie oder Rollbacks pausieren.

Re-Enrollment und Widerruf​

Ein neuer Re-Enrollment-Code widerruft das funktionierende Credential nicht. Der Austausch erfolgt erst nach erfolgreichem Enrollment. Stoppen Sie den Service, wenn Sie bereit sind, erzeugen Sie den Code und führen Sie aus:

"$HOME/spot-agent-saas/bin/spot-agent-saas" saas-enroll \
--control-plane '<tenant-control-plane-url>' \
--save \
--start

Geben Sie den Code verdeckt ein. Disable connector oder Revoke widerrufen aktive Credentials, offene Codes, Sitzungen und angeforderte Updates sofort.

Sichere Diagnose​

"$HOME/spot-agent-saas/bin/spot-agent-saas" saas-pull-config
tail -n 80 "$HOME/spot-agent-saas/log/spot-agent-sap.log"

Prüfen Sie zusätzlich Tenant console > Agent logs. Teilen Sie niemals connector.json, Installationscodes, SAP-Secrets, Elastic-Keys oder unbereinigte Konfiguration. Ungültige, abgelaufene oder manipulierte TUF-Metadaten und unerwartete Digests stoppen Installation oder Update; in Produktion gibt es keinen Bypass.

Fünf-Minuten-Sammlungen sind an die Uhr gebunden und über die erste Minute jedes Blocks verteilt. Observed ist der von SAP gelieferte Zeitstempel; der Bucket-Anfang im Diagramm zeigt nicht, wann die Ingestion beendet wurde. Bei scheinbar verspäteten Punkten vergleichen Sie in Agent logs scheduled_at, start_delay_ms, @timestamp und ingested_at, bevor Sie die Freshness ändern.

Der Agent begrenzt Parallelität und fasst verspätete Zyklen zusammen. Heartbeats enthalten nur aggregierte CPU-, RSS/PSS-, Heap/GC/cgo-, Thread-, Queue-, RFC- und Exportzähler. CPU muss zwischen zwei Samples berechnet werden; der kumulative Wert ist kein momentaner Prozentwert.

Umgebung und Umfang der Prüfung​

Prüfe, ob der Ursprung der Anleitung zu deiner Umgebung gehört. Entwicklung und Produktion verwenden getrennte Installationen und Vertrauensgrundlagen; ein Bootstrap einer Umgebung kann Pakete der anderen nicht validieren. Wenn sich der kanonische SaaS-Ursprung ändert, verwende die aktualisierte Anleitung und bewahre Zugangsdaten und Zustand der bestehenden Installation gemäß den Support-Anweisungen. Kopiere keine Entwicklungsinstallation oder deren Daten, um eine Produktionsinstallation anzulegen.

Ein Test mit Demonstrationskonfiguration kann Installation, Enrollment, Heartbeat und Konfigurationsübermittlung prüfen. Er belegt weder RFC-Konnektivität noch echte SAP-Erfassung oder ein Upgrade von einer früheren Version. Prüfe vor der Freigabe einer SAP-Verbindung zusätzlich eine kürzlich erfolgreiche Erfassung und neue Daten dieser Verbindung. Ein gesunder Heartbeat allein belegt keine aktuelle Telemetrie.

Bewahre bei einem vorübergehenden Test bestehende Installationen auf. Widerrufe anschließend ausschließlich den Test-Connector und entferne dessen Dienst, Verzeichnis und temporäre Installationscode-Datei. Prüfe, ob der bisherige Connector weiterhin läuft.