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
| Methode | Artefakt | Rechte | Empfohlener Betrieb |
|---|---|---|---|
| RPM/DEB | spot-agent-sap | root für die Installation | System-systemd |
| Portable | spot-agent-sap-portable | Benutzer ohne root | systemd --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_64mit 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
SHA256SUMSaus 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.
| Inhalt | Systempfad |
|---|---|
| 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:
| Inhalt | Portable-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:
- Agent und Validator oder deren User-Units stoppen.
- Ein privates, verifiziertes Backup von
configunddataerstellen. - Das neue tar prüfen und in ein anderes Verzeichnis extrahieren, nie über den aktiven Baum.
- Nur
config/spot-agent-sap.yaml,config/spot-sap-secret.key,data/licenseunddata/spot-agent-sapderselben Installation migrieren. bin,nwrfcsdk,scripts,shareundrunnicht aus der alten Version kopieren.- Bei Verwendung der enthaltenen Units den stabilen Pfad
$HOME/spot-agent-sap-portablebeibehalten, systemd neu laden und zuerst Lizenz, dann Agent starten. - 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
| Symptom | Prüfung |
|---|---|
| Agent endet vor dem Start | license-check ausführen und license.err prüfen |
| Bootstrap schlägt fehl | URL, Authentifizierung, CA, Namespace und ILM-Rechte prüfen |
| Portable-Änderung wird ignoriert | Agent stoppen und nur run/spot-agent-sap.yaml neu erzeugen |
| Dienst stoppt nach Abmeldung | linger für den Runtime-Benutzer anfordern |
| SAP-Bibliothek fehlt | Checksum erneut prüfen; nwrfcsdk und Wrapper nicht ersetzen |
| Dokumente vorhanden, Dashboards leer | Ziel und namespace von Agent und Backend abgleichen |
| Benutzerqualität teilweise/unbekannt | Aktivierte Quellen und Aktualität prüfen; kein Prozessfehler |
Keine lokale UI und kein Port 8080 | Korrektes Verhalten von Connector-only |
Beim Sammeln von Nachweisen keine Konfiguration, Zugangsdaten oder vollständigen Lizenzantworten aufnehmen. Nur bereinigte Statusausgaben und die angegebenen Logs verwenden.