Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Senden von Protokollen über den HLC-Endpunkt (HLC Logs)
Der HLC Logs-Endpunkt (/services/collector/event) basiert auf dem HTTP Log Collector (HLC) -Format.
Wenn Sie die Bearer-Token-Authentifizierung verwenden, schließen Sie die Einrichtungsschritte unter ab, bevor Sie fortfahren. Einrichtung der Bearer-Token-Authentifizierung
Eingabemodi
Jedes Ereignis ist ein JSON-Objekt mit einem erforderlichen "event" Feld. Optionale Metadatenfelder: "time""host","source",,"sourcetype","index".
Einzelnes Ereignis:
{"event":"Hello world!","time":1486683865.0}
JSON-Array von Ereignissen:
[ {"event":"msg1","time":1486683865.0}, {"event":"msg2","time":1486683866.0} ]
Verkettete/gebündelte Ereignisse (kein Array-Wrapper):
{"event":"msg1","time":1486683865.0}{"event":"msg2","time":1486683866.0}
Feld „Ereignis“ (erforderlich)
Das "event" Feld ist ein Pflichtfeld. Sein Wert kann ein beliebiger JSON-Typ sein:
{"event":"a string message"} {"event":{"message":"structured data","severity":"INFO"}} {"event":42} {"event":true}
Objekte ohne "event" Feld werden stillschweigend übersprungen:
{"message":"this is skipped — no event field"}
Zeitfeld (optional)
Das "time" Feld wird in Epochensekunden (nicht in Millisekunden) angegeben, mit optionaler Dezimalzahl für eine Genauigkeit unter einer Sekunde.
| Format | Beispiel | Interpretiert als |
|---|---|---|
| Gleitkommazahl | "time":1486683865.500 |
1486683865500 ms |
| Ganzzahl | "time":1486683865 |
1486683865000 ms |
| Zeichenfolge (Float) | "time":"1486683865.500" |
1486683865500 ms |
| Zeichenfolge (Ganzzahl) | "time":"1486683865" |
1486683865000 ms |
| Fehlen | (kein Zeitfeld) | Aktuelle Uhrzeit des Servers |
| Ungültig | "time":"invalid" |
Aktuelle Uhrzeit des Servers |
Content-Type
Nur application/json wird akzeptiert.
Akzeptierte JSON-Werttypen
| Typ der obersten Ebene | Behavior |
|---|---|
Objekt mit "event" |
Accepted (Akzeptiert) |
Objekt ohne "event" |
Übersprungen |
| Array von -Objekten. | Jedes Element wird einzeln verarbeitet |
| Verkettete Objekte | Jedes Objekt wird einzeln verarbeitet |
| Primitiv (Zeichenfolge, Zahl, Boolean, Null) | Übersprungen |
Endpunkt-Format
Die URL des HLC-Endpunkts folgt diesem Format:
https://logs.<region>.amazonaws.com/services/collector/event?logGroup=<name>&logStream=<name>[&entityName=<name>&entityEnvironment=<environment>]
Erforderliche Parameter:
<region>— AWS Region (zum Beispielus-east-1,eu-west-1)logGroup— URL-codierter Name der ProtokollgruppelogStream— URL-codierter Name des Protokolldatenstroms
Optionale Parameter:
Sie können Ihre Protokollereignisse optional einer Service Entität zuordnen, indem Sie die folgenden Abfrageparameter angeben. Da es sich bei den über den HLC-Endpunkt gesendeten Protokollen um benutzerdefinierte Telemetrie handelt, werden sie nicht automatisch einer Entität zugeordnet. Durch die Angabe dieser Parameter erstellt CloudWatch Logs eine Entität mit der KeyAttributes.Type Einstellung auf Service und ordnet sie Ihren Protokollereignissen zu. Auf diese Weise kann die zugehörige CloudWatch Explore-Funktion diese Protokolle mit anderen Telemetriedaten (Metriken, Traces und Logs) desselben Dienstes korrelieren, was die Fehlerbehebung und Überwachung Ihrer Anwendungen bei verschiedenen Signaltypen erleichtert. Weitere Informationen zu Entitäten und verwandter Telemetrie finden Sie unter Hinzufügen verwandter Informationen zur benutzerdefinierten Telemetrie.
entityName— Der Name der Dienstentität, die den Protokollereignissen zugeordnet werden soll. Dieser Wert wird als Entität gespeichertKeyAttributes.Name(z. B.my-applicationoderapi.myservice.com).entityEnvironment— Die Umgebung, in der der Dienst gehostet wird oder zu der er gehört. Dieser Wert wird als Entität gespeichertKeyAttributes.Environment(z. B.production,ec2:default, odereks:my-cluster/default).
Anforderungsformat
Senden Sie Protokolle mithilfe von HTTP POST mit den folgenden Headern und dem folgenden Hauptteil:
Kopfzeilen:
Authorization: Bearer <your-bearer-token>Content-Type: application/json
Körperformat:
Der Hauptteil der Anfrage sollte im JSON-Format mit einer Reihe von Ereignissen vorliegen:
{ "event": [ { "time": 1730141374.001, "event": "Application started successfully", "host": "web-server-1", "source": "application.log", "severity": "info" }, { "time": 1730141374.457, "event": "User login successful", "host": "web-server-1", "source": "auth.log", "user": "john.doe" } ] }
Feldbeschreibungen:
time— Zeitstempel der Unix-Epoche in Sekunden, mit optionaler Dezimalzahl für eine Genauigkeit unter einer Sekunde (optional)event— Die Protokollnachricht oder die Ereignisdaten (erforderlich)host— Hostname oder Kennung der Quelle (optional)source— Kennung der Protokollquelle (optional)
Zusätzliche benutzerdefinierte Felder können nach Bedarf hinzugefügt werden.
Beispielanforderung
curl -X POST "https://logs.<region>.amazonaws.com/services/collector/event?logGroup=MyLogGroup&logStream=MyStream" \ -H "Authorization: Bearer ACWL<token>" \ -H "Content-Type: application/json" \ -d '{"event":{"message":"User logged in","user_id":"u-123"},"time":1486683865.0,"host":"web-01","source":"auth-service"}'
Best Practices
Ereignisse stapeln
Für mehr Leistung und Effizienz:
Wenn möglich, mehrere Ereignisse in einer einzigen Anfrage bündeln
Empfohlene Batchgröße: 10—100 Ereignisse pro Anfrage
Maximale Anforderungsgröße: 1 MB
Fehlerbehandlung
Implementieren Sie die richtige Fehlerbehandlung in Ihrer Anwendung. Allgemeine HTTP-Statuscodes:
200 OK— Protokolle wurden erfolgreich aufgenommen400 Bad Request— Ungültiges Anforderungsformat oder ungültige Parameter401 Unauthorized— Ungültiges oder abgelaufenes Inhaber-Token403 Forbidden— Unzureichende Berechtigungen404 Not Found— Protokollgruppe oder Stream existiert nicht429 Too Many Requests— Ratenlimit überschritten500 Internal Server Error— Servicefehler (erneuter Versuch mit exponentiellem Backoff)
Einschränkungen
Maximale Ereignisgröße: 256 KB pro Ereignis
Maximale Anforderungsgröße: 1 MB
Maximale Anzahl von Ereignissen pro Anfrage: 10.000
Die Namen der Protokollgruppen müssen den Benennungskonventionen für CloudWatch Protokolle entsprechen
Wenn die Bearer-Token-Authentifizierung verwendet wird, muss die Bearer-Token-Authentifizierung für die Protokollgruppe aktiviert sein.