Zum Hauptinhalt springen

Agent logs

Agent logs zeigt strukturierte Ereignisse, die SaaS-Pull-Connectors senden. Die Sicht dient zur Diagnose von Installation, Konfigurations-Pull, Heartbeat, SAP-Extraktion, Elastic-Schreiben und verwalteten Upgrades, ohne sich am Host anzumelden.

Remote-Logs sind best effort: Wenn ein Log-Schreibvorgang fehlschlägt, blockiert der Agent weder SAP-Extraktion noch Heartbeat. Die operative Aufbewahrung ist kurz und auf aktuelles Troubleshooting ausgelegt.

Agent logs in Tenant console
Agent logs filtert nach Zeitfenster, Connector, Level, Host, Event und Text.

Filter​

FilterNutzung
Time rangeStandardmäßig letzte 15 Minuten; größere Fenster für Upgrades oder bereits geschlossene Incidents
ConnectorIsoliert eine Runtime, wenn der Tenant mehrere Agenten hat
Levelinfo, warn oder error; starten Sie mit error, wenn ein Connector NOK ist
HostnameFiltert nach gemeldetem Host; in externen Berichten nur bereinigte Namen verwenden
EventSucht Events wie config.pull.failed, sap.extraction.failed oder upgrade.verify_failed
SearchFreitextsuche in Message und Hauptfeldern
Page sizeAnzahl Zeilen pro Seite

Die Tabelle zeigt Time, Level, Connector, Host, Event und Message. Beim Aufklappen sehen Sie das vollständige JSON des Events. Kopieren Sie keine vollständigen Ausgaben in Tickets, wenn sie interne Pfade, Hostnamen oder IDs enthalten; teilen Sie nur den bereinigten relevanten Ausschnitt.

Wichtige Events​

Event-FamilieBedeutungNächste Prüfung
config.pull.started / config.pull.succeededAgent ruft SaaS-Konfiguration abConfig in Connectors prüfen, falls Revision nicht steigt
config.pull.not_modifiedLokale Revision stimmt mit SaaS übereinNormal, wenn SAP connections oder Upgrades unverändert sind
config.pull.failedAgent kann Konfiguration nicht abrufenAusgehendes HTTPS, lokale Identität, Re-enrollment
heartbeat.sent / heartbeat.failedLebenszeichen des ConnectorsBei Fehler Netzwerk und Control Plane prüfen
sap.extraction.started / sap.extraction.succeededSAP-Extraktion läuft oder war erfolgreichMit Metrics und Operations kreuzen
sap.extraction.failedRFC, SAP-Rechte oder Daten nicht verfügbarTechnischen Benutzer, ASHOST, SYSNR und aktivierte Familie prüfen
sap.collection.schedule.completedTatsächliche Phase und Dauer je Source/Familiescheduled_at, start_delay_ms, duration_ms und skipped_cycles vergleichen
sap.programs.progressBestätigte Programs-Abdeckung je QuellecoveredThrough, lagSeconds, pendingWindows und state über mehrere Beobachtungen vergleichen
elastic.bulk.succeeded / elastic.bulk.failedSchreiben in das Tenant-TargetBei Fehler Ingestion-Konnektivität und Tenant-Target prüfen
upgrade.*Download, Prüfung, Installation und NeustartMit Request upgrade in Connectors kreuzen

Diagnose nach Symptom​

SymptomEmpfohlener FilterInterpretation
Connector PendingConnector + letzte 30 MinutenOhne Logs ist der Agent nicht gestartet oder nicht enrolled
Connector StaleConnector + heartbeatHeartbeat gestoppt; User-Service oder ausgehendes HTTPS prüfen
Config nicht angewendetConnector + config.pullBei Pull-Fehler Re-enrollment oder Konnektivität prüfen
Leere DashboardsConnector + sap.extraction und elastic.bulkTrennt SAP-Fehler, Schreibfehler und fehlende Daten im Fenster
Programs im RückstandConnector + sap.programs.progressBestätigte Abdeckung mit der aktuellen Zeit vergleichen; ein neues Dokument kann alte Historie abdecken
Upgrade fehlgeschlagenConnector + upgradeChecksumme/Signatur, Speicherplatz und Supervisor validieren

Takt und Ressourcen​

Observed/@timestamp ist SAP-Zeit, ingested_at die Empfangszeit und die Diagrammachse zeigt Bucket-Anfänge. Verwenden Sie alle vier Signale zur Latenzdiagnose. Verpasste Zyklen werden zusammengefasst und bilden keine Queue.

Der Heartbeat enthält allowlist-basierte aggregierte RSS/PSS-, Heap/GC/cgo-, Goroutine-, Thread-, Dispatcher-, RFC-, Zeilen-, Dokument- und Byte-Zähler. Berechnen Sie CPU zwischen zwei process_cpu_time_ns-Werten; ein kumulativer Einzelwert ist kein Prozentwert.

Bei Programs spiegeln coveredThrough und lagSeconds nur durch Bestätigung gesicherte Abdeckung wider; windowSeconds zeigt die Blattbreite und pendingWindows offene Blätter. current bedeutet, dass der Rückstand höchstens Sammelintervall plus 120 Sekunden beträgt; catching_up bedeutet Aufholen und backoff Warten nach einem Fehler. Vor dem ersten bestätigten Cursor ist die Aktualität unbekannt; Abdeckungs- und Statusfelder können fehlen. Vergleichen Sie mehrere Ereignisse: ein neuer Eingang allein belegt keine aktuelle Programs-Abdeckung.

Jobs ändern sich während des Lesens​

SAP stellt für die Paginierung von TBTCO keinen stabilen Snapshot bereit. Der Connector prüft jeden vollständigen Durchlauf, bevor Daten veröffentlicht werden. Ändern sich Jobs zwischen Seiten, endet der Jobs-Zyklus mit einem bereinigten Fehler, veröffentlicht keine unvollständige Sicht und verschiebt den Cursor nicht; der nächste stabile Zyklus liest wieder von Anfang an. Ein Abbruch zwischen einer Seite und ihrem bestätigten Fortschritt kann ebenfalls keine alten und neuen Läufe vermischen. Ein einzelner Fall kann mit normaler Batch-Aktivität zusammenfallen. Bei wiederholtem Auftreten prüfen Sie Extraktionsdauer, SAP-Last und Leserechte, bevor Intervalle oder Limits erhöht werden.

Bei Tabellen mit mehr als 500 Zeilen vereinbart der Connector einen einzigen SAP-Sortiermodus, bevor er die erste Seite veröffentlicht. Eine wiederholte ROWSKIPS- oder Sortiermeldung bedeutet, dass diese Familie den Zyklus nicht abgeschlossen hat: Prüfen Sie die Freshness von Job Runs oder RFC failures getrennt, denn ein aktueller aggregierter Jobs-Snapshot beweist nicht, dass diese paginierten Listen vollständig gelesen wurden.

Der Connector sammelt das vollständige Job Log jeder terminalen Ausführung über die Standard-BAPI. Die Sammlung läuft asynchron und blockiert weder den job_runs-Cursor noch den Long-running-Jobs-Snapshot. Da SAP diese Antwort nicht paginiert, kann eine große Abfrage den Speicherverbrauch des Agents vorübergehend erhöhen. Prüfen Sie im Detail das Manifest: complete oder empty sind bestätigte Ergebnisse; retrying, too_large, unauthorized, unavailable oder error erklärt, warum das Log noch nicht verfügbar ist. SPOT interpretiert eine partielle Sammlung niemals als vollständiges oder leeres Log.

SAP liefert eine unvollständige Struktur​

Erforderliche Tabellen und Listen für RFC failures, qRFC und Certificates werden vor der Veröffentlichung geprüft. Fehlt eine Struktur, ist ihre Form inkompatibel oder endet eine Aufzählung vorzeitig, endet der Zyklus mit einem bereinigten Fehler und behält den zuletzt bestätigten Zustand. Dies gilt nicht als Null, leere Liste, Entfernung oder Recovery. Ein explizit leeres Ergebnis mit korrekter Struktur bleibt gültig.

Bei Certificates verhindert eine leere Discovery-Liste nicht die Prüfung der kanonischen PSE-Kontexte. Existiert einer davon, wird das Inventar veröffentlicht; fehlende Berechtigungen, fehlerhafte Strukturen und andere RFC-Fehler bleiben fail-closed.

CCMS-Alarme ohne SAP-Text​

Ein CCMS-Alarm kann eine gültige Identität, einen Zeitstempel und einen Wert enthalten, obwohl SAP den erklärenden Text nicht liefert. Der Connector verwirft den Zyklus deshalb nicht: Er veröffentlicht eine stabile Betriebsmeldung und kennzeichnet ihre Herkunft als Fallback. Dies ist kein RFC-Fehler. Ein echter Berechtigungsfehler, eine beschädigte Antwort oder ein fehlender Pflichtwert setzt die Sammlung weiterhin auf Fehler und verschiebt den Watermark nicht.

Die Extraktionsdiagnose unterscheidet geeignete Knoten, Alarmkandidaten, ausgegebene Ereignisse, Text-Fallbacks und echte Fehler. Die Anzahl geeigneter Knoten ist daher nicht die Anzahl fehlender Meldungen.

Beziehung zu lokalen Logs​

Der Host speichert lokale Logs unter:

$HOME/spot-agent-saas/log/spot-agent-sap.log

Nutzen Sie Remote-Logs für normale Diagnose in SPOT. Melden Sie sich am Host nur an, wenn Sie systemd --user, linger, Dateirechte oder lokale Konnektivität prüfen müssen.