Zum Hauptinhalt springen

Connector-only

Connector-only installiert nur spot-agent-sap, den lokalen Lizenzvalidator und das benötigte SAP NetWeaver RFC SDK. Backend, Weboberfläche und Elasticsearch sind nicht enthalten. Verwende diese Variante, wenn SPOT und Elasticsearch auf einem anderen Host laufen oder der Agent nahe bei SAP bleiben muss.

Installationsmethode wählen

MethodeArtefaktRechteEmpfohlener Betrieb
RPM/DEBspot-agent-saproot für die InstallationSystem-systemd
Portablespot-agent-sap-portableBenutzer ohne rootsystemd --user oder Supervisor

Beide Methoden führen denselben Agent aus und erzeugen denselben Datenvertrag. Connector-only nicht über einer SPOT-Suite installieren und deren Verzeichnisse nicht mischen. Siehe auch Installationsmatrix.

Vor der Installation

Benötigt werden:

  • ein Linux-Host x86_64 mit synchronisierter Uhr;
  • RFC-Konnektivität vom Host zu jedem SAP-System;
  • HTTPS-Konnektivität zum Elasticsearch-Cluster, in den der Agent schreibt;
  • ein schreibgeschützter SAP-Benutzer mit Berechtigungen für die gewünschten Sammlungsfamilien;
  • ein gültiger Online-Schlüssel oder eine Offline-Lizenzdatei;
  • Artefakt und SHA256SUMS aus derselben SPOT Release.

Das offizielle Artefakt enthält bereits das entpackte SDK und die validierten Kompatibilitätsbibliotheken. Kein weiteres SDK in das Paket extrahieren und die Binärdateien nicht ersetzen.

Mit RPM oder DEB installieren

Prüfen und installieren

Im Verzeichnis mit Paket und SHA256SUMS:

sha256sum -c --ignore-missing SHA256SUMS

sudo rpm -Uvh spot-agent-sap-X.Y.Z-1.el10.x86_64.rpm
# oder
sudo dpkg -i spot-agent-sap_X.Y.Z_amd64.deb

Das Paket erstellt den Service-Benutzer. Das Elasticsearch-Ziel bleibt zunächst leer und deaktiviert. Konfiguriere es, bevor der Agent gestartet wird.

InhaltSystempfad
Binärdateien und SDK/opt/spot
Bearbeitbare Konfiguration/etc/spot/.spot-agent-sap.yaml
Inkrementeller Zustand/var/lib/spot-agent-sap
Lizenz und Verlauf/var/lib/spot/license
Agent-Log/var/log/spot/spot-agent-sap.log

Portable ohne root installieren

Herunterladen, prüfen und extrahieren

Der offizielle Name lautet spot-agent-sap-portable_X.Y.Z_linux_amd64.tar.gz. Damit die enthaltenen systemd --user-Units unverändert funktionieren, in den empfohlenen Pfad extrahieren:

umask 077
SPOT_ARTIFACT=spot-agent-sap-portable_X.Y.Z_linux_amd64.tar.gz
grep -F " ${SPOT_ARTIFACT}" SHA256SUMS | sha256sum -c -

export SPOT_HOME="$HOME/spot-agent-sap-portable"
mkdir -p "$SPOT_HOME"
tar -xzf "$SPOT_ARTIFACT" -C "$SPOT_HOME" --strip-components=1
chmod -R go-rwx "$SPOT_HOME"

Vor der Konfiguration die Paketvariante prüfen:

test -x "$SPOT_HOME/bin/spot-agent-sap"
test -x "$SPOT_HOME/bin/spot-license-blackbox"
test -x "$SPOT_HOME/scripts/run-agent.sh"
test -x "$SPOT_HOME/scripts/run-license.sh"
test ! -e "$SPOT_HOME/bin/spot-server"
test ! -e "$SPOT_HOME/scripts/run-elasticsearch.sh"

Portable erstellt weder Benutzer noch Systemdienste oder Dateien unter /opt, /etc oder /var. Alles gehört dem Runtime-Benutzer:

InhaltPortable-Pfad
Bearbeitbare Konfiguration$SPOT_HOME/config/spot-agent-sap.yaml
Generierte Runtime-Konfiguration$SPOT_HOME/run/spot-agent-sap.yaml
Inkrementeller Zustand$SPOT_HOME/data/spot-agent-sap
Lizenz und Verlauf$SPOT_HOME/data/license
Logs$SPOT_HOME/log
Enthaltenes SDK$SPOT_HOME/nwrfcsdk

Bei einem anderen $SPOT_HOME funktionieren die manuellen Skripte weiterhin. Die enthaltenen Units müssen vor dem Kopieren an diesen Pfad angepasst werden.

Agent konfigurieren

Bearbeite die Konfigurationsdatei der gewählten Installationsmethode. Die Portable-Vorlage wird mit elasticsearch.enabled: false ausgeliefert. Ziel erst nach Prüfung von TLS und Authentifizierung vollständig eintragen und aktivieren.

elasticsearch:
url: https://elastic.example.local:9200
transport_profile: external
namespace: production
apikey: "<elastic-zugangsdaten>"
manage_data_streams_ilm: false
enabled: true

sapconnection:
- id: sap-production
alias: SAP Production
system_id: PRD
ashost: sap.example.local
sysnr: "00"
client: "100"
user: SPOT_READER
passwd: "enc:v1:<verschluesseltes-geheimnis>"
lang: EN
time_zone: Europe/Madrid
enabled: true
collections:
metrics: {enabled: true, intervalSeconds: 300}
ccms_events: {enabled: true, intervalSeconds: 300}
jobs: {enabled: true, intervalSeconds: 300}
work_processes: {enabled: true, intervalSeconds: 300}
abap_dumps: {enabled: true, intervalSeconds: 300}
rfc_failures: {enabled: true, intervalSeconds: 300}
certificates: {enabled: true, intervalSeconds: 86400}

Genau eine Elasticsearch-Authentifizierung verwenden: apikey oder username/password. Bei einer privaten CA nur das öffentliche Zertifikat in den Konfigurationsbereich kopieren und ca_file mit einem absoluten Pfad angeben. insecure_skip_verify behält die Verschlüsselung bei, prüft aber nicht die Serveridentität; nur als temporäre, dokumentierte Ausnahme verwenden.

SAP passwd muss einen für dieselbe Installation verschlüsselten enc:v1:- Wert enthalten. Das Passwort weder im Klartext speichern noch als Prozessargument übergeben. Bei Portable $SPOT_HOME/config/spot-sap-secret.key zusammen mit der Konfiguration aufbewahren. Bei Verlust oder Austausch dieses Schlüssels können vorhandene Zugangsdaten nicht mehr entschlüsselt werden.

enc:v1: sicher erzeugen

Bei RPM/DEB den Befehl als Service-Benutzer ausführen. Er fragt das SAP-Passwort ohne Echo ab und schreibt ausschließlich den verschlüsselten Wert:

sudo -u spot /opt/spot/bin/spot-agent-sap encrypt

Die einzige Zeile enc:v1:... nach sapconnection[].passwd kopieren. Wenn eine Automatisierung das Geheimnis bereits über einen geschützten Stream liefert, --stdin verwenden; den Klartext nie in die Befehlszeile schreiben:

IFS= read -r -s -p 'SAP-Passwort: ' SPOT_SAP_PASSWORD; printf '\n' >&2
printf '%s' "$SPOT_SAP_PASSWORD" |
sudo -u spot /opt/spot/bin/spot-agent-sap encrypt --stdin
unset SPOT_SAP_PASSWORD

Alternativ eine temporäre reguläre, symlink-freie und private Datei verwenden:

sudo install -o spot -g spot -m 0600 /geschuetzter/pfad/passwort /run/spot-sap-password
sudo -u spot /opt/spot/bin/spot-agent-sap encrypt \
--password-file /run/spot-sap-password
sudo rm -f /run/spot-sap-password

Bei Portable den Wrapper des Artefakts aufrufen; er ermittelt seine eigene Wurzel und verwendet den Schlüssel unter config/:

"$HOME/spot-agent-sap-portable/bin/spot-agent-sap" encrypt

Der Systemschlüssel liegt unter /etc/spot/spot-sap-secret.key, der portable Schlüssel unter $SPOT_HOME/config/spot-sap-secret.key. Der Ciphertext ist an diesen Schlüssel gebunden. Ihn in das geschützte Konfigurationsbackup aufnehmen und zusammen mit den enc:v1:-Werten wiederherstellen. Nie löschen, neu erzeugen oder aus einer anderen Installation kopieren: Ein anderer Schlüssel kann vorhandene Passwörter nicht entschlüsseln. Hat ein vorhandener portabler Schlüssel nicht den Modus 0600, schlägt der Befehl fehl, ohne ihn zu ändern.

Mit manage_data_streams_ilm: false prüft Bootstrap nur die Verbindung und erstellt keine Ressourcen. Mit true benötigt der Agent Administrationsberechtigungen und verwaltet ausschließlich die Data Streams metrics und logs. namespace muss dem vom SPOT-Backend gelesenen Namespace entsprechen. Ein anderes Ziel oder ein anderer Namespace erzeugt leere Dashboards, obwohl die Extraktion erfolgreich ist.

SPOT 2.0 unterstützt keine getrennten Indizes für Jobs, Events oder WPInfo. Aus namespace werden drei Namen abgeleitet: metrics-Telemetrie, logs-Telemetrie und der getrennte operative Agent-Stream.

Lizenz aktivieren oder installieren

Ohne gültige Lizenz führt der Agent weder elastic-bootstrap noch run aus. Nutzungswarnungen stoppen den Connector nicht. Eine fehlende, ungültige, abgelaufene oder widerrufene Lizenz stoppt ihn.

RPM/DEB

sudo systemctl enable --now spot-license.service
sudo systemctl status spot-license.service --no-pager

# Online-Aktivierung über die verdeckte Eingabe
sudo -u spot /opt/spot/bin/spot-agent-sap license-activate

Für eine Offline-Lizenz:

sudo install -o spot -g spot -m 0600 /empfangener/pfad/lizenz /run/spot-license.offline
sudo -u spot /opt/spot/bin/spot-agent-sap license-install /run/spot-license.offline
sudo rm -f /run/spot-license.offline

Portable mit systemd --user

Die enthaltenen Units zeigen auf $HOME/spot-agent-sap-portable. Units installieren und zuerst den Validator starten:

mkdir -p "$HOME/.config/systemd/user"
install -m 0644 "$SPOT_HOME/systemd-user/spot-license.service" \
"$HOME/.config/systemd/user/spot-license.service"
install -m 0644 "$SPOT_HOME/systemd-user/spot-agent-sap.service" \
"$HOME/.config/systemd/user/spot-agent-sap.service"
systemctl --user daemon-reload
systemctl --user enable --now spot-license.service

"$SPOT_HOME/bin/spot-agent-sap" license-activate
# oder: "$SPOT_HOME/bin/spot-agent-sap" license-install /geschuetzter/pfad/lizenz
"$SPOT_HOME/bin/spot-agent-sap" license-check

systemctl --user enable --now spot-agent-sap.service

Der Host-Administrator muss linger für den Runtime-Benutzer aktivieren, wenn der Dienst nach der Abmeldung weiterlaufen soll. User-Units und manuelle Skripte nicht gleichzeitig starten.

Portable mit manuellem Start

Für eine kontrollierte Prüfung oder einen anderen Supervisor:

umask 077
"$SPOT_HOME/scripts/run-license.sh" \
>"$SPOT_HOME/log/license.out" 2>"$SPOT_HOME/log/license.err" &
printf '%s\n' "$!" >"$SPOT_HOME/run/license.pid"

"$SPOT_HOME/bin/spot-agent-sap" license-activate
# oder: "$SPOT_HOME/bin/spot-agent-sap" license-install /geschuetzter/pfad/lizenz
"$SPOT_HOME/bin/spot-agent-sap" license-check

"$SPOT_HOME/scripts/run-agent.sh"

run-agent.sh hält den Agent im Vordergrund, damit der Elternprozess ihn überwachen kann. Ist der lokale Validator nicht erreichbar, startet das Skript ihn und schreibt die Ausgaben nach $SPOT_HOME/log/license.out und license.err.

Den Online-Schlüssel nie als Positionsargument übergeben. Für Automatisierung --stdin oder --key-file mit einer regulären 0600-Datei verwenden. Unter Lizenzen und Verlängerung stehen Status, Verlauf und verschlüsselter Verlängerungsexport ohne Weboberfläche.

Konfigurationsänderungen anwenden

Bei RPM/DEB /etc/spot/.spot-agent-sap.yaml bearbeiten und den Dienst neu starten. Bei Portable erzeugt run-agent.sh $SPOT_HOME/run/spot-agent-sap.yaml nur, wenn die Datei fehlt. Eine Änderung an der bearbeitbaren Datei wird so angewendet:

systemctl --user stop spot-agent-sap.service
rm -f "$SPOT_HOME/run/spot-agent-sap.yaml"
systemctl --user start spot-agent-sap.service

Ohne systemd zuerst den überwachten Prozess stoppen, nur die generierte Runtime-Datei entfernen und run-agent.sh erneut ausführen. Nicht config/spot-sap-secret.key, data/license oder data/spot-agent-sap löschen.

Installation prüfen

RPM/DEB

sudo -u spot /opt/spot/bin/spot-agent-sap license-status --json
sudo -u spot /opt/spot/bin/spot-agent-sap license-check
sudo -u spot /opt/spot/bin/spot-agent-sap elastic-bootstrap \
--config /etc/spot/.spot-agent-sap.yaml
sudo systemctl enable --now spot-agent-sap.service
sudo systemctl status spot-agent-sap.service --no-pager
sudo journalctl -u spot-agent-sap -n 120 --no-pager

Portable

"$SPOT_HOME/bin/spot-agent-sap" license-status --json
"$SPOT_HOME/bin/spot-agent-sap" license-check
test -f "$SPOT_HOME/run/spot-agent-sap.yaml"
tail -n 120 "$SPOT_HOME/log/spot-agent-sap.log"

systemctl --user status spot-license.service spot-agent-sap.service --no-pager
journalctl --user -u spot-agent-sap.service -n 120 --no-pager

Der Portable-Launcher führt vor dem Daemon elastic-bootstrap aus. Bei ungültiger Verbindung, Authentifizierung, TLS-Konfiguration oder Mappings endet er mit Fehler und startet die Extraktion nicht.

Anschließend in der entfernten SPOT-Instanz Landing/Metrics, Events, Job Monitoring, Certificates sowie RFC & Integrations prüfen. Ein 2.0-Backend zeigt bei einem älteren Producer Agent upgrade required und interpretiert keine Legacy-Dokumente.

Fähigkeiten und Sicherheit

Der Probe jeder Verbindung markiert jede Familie als supported, unauthorized, unavailable oder error. Eine nicht verfügbare Familie blockiert die anderen nicht. Der RFC-Benutzer muss schreibgeschützt sein:

  • Dumps enthalten Fehler, Programm, Benutzer, Mandant, Host und technischen Text, nie Speicher- oder Geschäftsdaten;
  • RFC-Datensätze enthalten Status, Ziel, Queue, Funktion und Fehler, nie Payloads;
  • Zertifikatsdatensätze enthalten Subject, Issuer, Seriennummer, Fingerprint, PSE/Anwendung und Gültigkeit, nie private Schlüssel.

Der Agent bewahrt Watermarks, Überlappung und Deduplizierung. Der erste Jobs-/Dump-/RFC-Backfill umfasst 24 Stunden.

Backup, Upgrade und Rollback

Bei RPM/DEB denselben Paketnamen mit rpm -Uvh oder dpkg -i neu installieren. Konfiguration, Lizenz, Journal und inkrementeller Zustand bleiben erhalten. Siehe Upgrade, Backup, Restore und Deinstallation.

Für Portable:

  1. Agent und Validator oder deren User-Units stoppen.
  2. Ein privates, verifiziertes Backup von config und data erstellen.
  3. Das neue tar prüfen und in ein anderes Verzeichnis extrahieren, nie über den aktiven Baum.
  4. Nur config/spot-agent-sap.yaml, config/spot-sap-secret.key, data/license und data/spot-agent-sap derselben Installation migrieren.
  5. bin, nwrfcsdk, scripts, share und run nicht aus der alten Version kopieren.
  6. Bei Verwendung der enthaltenen Units den stabilen Pfad $HOME/spot-agent-sap-portable beibehalten, systemd neu laden und zuerst Lizenz, dann Agent starten.
  7. Lizenz, Bootstrap, Ingestion und Verlaufskontinuität prüfen, bevor die alte Version entfernt wird.

data/license nicht in eine andere Installation klonen: Dort liegt die lokal prüfbare Identität. Für ein Rollback den vorherigen Binärstand und dessen vollständiges kompatibles Backup wiederherstellen.

Portable deinstallieren

User-Units deaktivieren und stoppen, ihre Kopien aus $HOME/.config/systemd/user entfernen und systemctl --user daemon-reload ausführen. config und data vorher archivieren, falls Restore oder Verlängerung benötigt werden. Den Portable-Baum erst nach Prüfung des Backups entfernen. Eine korrekte Non-root-Installation hat keine weiteren SPOT-Pfade zu bereinigen.

Schnelle Fehlerbehebung

SymptomPrüfung
Agent endet vor dem Startlicense-check ausführen und license.err prüfen
Bootstrap schlägt fehlURL, Authentifizierung, CA, Namespace und ILM-Rechte prüfen
Portable-Änderung wird ignoriertAgent stoppen und nur run/spot-agent-sap.yaml neu erzeugen
Dienst stoppt nach Abmeldunglinger für den Runtime-Benutzer anfordern
SAP-Bibliothek fehltChecksum erneut prüfen; nwrfcsdk und Wrapper nicht ersetzen
Dokumente vorhanden, Dashboards leerZiel und namespace von Agent und Backend abgleichen
Benutzerqualität teilweise/unbekanntAktivierte Quellen und Aktualität prüfen; kein Prozessfehler
Keine lokale UI und kein Port 8080Korrektes Verhalten von Connector-only

Beim Sammeln von Nachweisen keine Konfiguration, Zugangsdaten oder vollständigen Lizenzantworten aufnehmen. Nur bereinigte Statusausgaben und die angegebenen Logs verwenden.