Ingestion de journaux via des points de terminaison HTTP - Amazon CloudWatch Logs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Ingestion de journaux via des points de terminaison HTTP

Amazon CloudWatch Logs fournit des points de terminaison HTTP qui vous permettent d'envoyer des journaux directement à CloudWatch Logs à l'aide de simples requêtes HTTP POST. Ces points de terminaison prennent en charge à la fois l'authentification SigV4 et l'authentification par jeton porteur.

Important

Nous recommandons d'utiliser l'authentification SigV4 pour toutes les charges de travail de production où l'intégration du AWS SDK est possible. Le SigV4 utilise des informations d'identification à court terme et fournit la meilleure posture de sécurité. L'authentification par jeton porteur (clé API) est destinée aux scénarios dans lesquels SigV4 n'est pas réalisable, tels que les redirecteurs de journaux tiers qui ne prennent pas en charge AWS l'intégration du SDK. Pour plus d'informations, consultez la section Alternatives aux clés d'accès longue durée dans le guide de l'utilisateur IAM.

CloudWatch Logs prend en charge les points de terminaison d'ingestion HTTP suivants :

Endpoint Chemin Content-Type Format
OpenTelemetry Logs /v1/logs application/json ou application/x-protobuf OTLP JSON ou Protobuf
HLC Logs /services/collector/event application/json Format HLC
ND-JSON Logs /ingest/bulk application/json ou application/x-ndjson JSON délimité par un caractère de saut de ligne
Structured JSON Logs /ingest/json application/json Objet ou tableau JSON

Comportement courant

Tous les points de terminaison d'ingestion HTTP partagent le comportement suivant :

Authentification

Tous les points de terminaison prennent en charge à la fois l'authentification SigV4 et l'authentification par jeton porteur :

  • SigV4 (recommandé) — AWS Signature standard version 4. Utilisez SigV4 chaque fois que votre application ou infrastructure prend en charge le AWS SDK ou peut signer des demandes. SigV4 utilise des informations d'identification à court terme et constitue la méthode d'authentification la plus sécurisée.

  • Jeton porteur — Utilisez l'Authorization: Bearer <ACWL token>en-tête.

Groupe de journaux et flux de journaux

  • Fourni via des en-têtes : x-aws-log-group et x-aws-log-stream

  • ?logGroup=<name>&logStream=<name>Les paramètres de requête sont également pris en charge sur tous les points de terminaison, à l'exception de l'OTLP.

  • Vous ne pouvez pas utiliser à la fois les paramètres de requête et les en-têtes pour le même paramètre.

  • Le groupe de journaux et le flux de journaux sont requis.

Réponse

  • Succès : HTTP 200 avec le corps {}

  • Erreurs de validation : HTTP 400

  • Défaillances d'authentification : HTTP 401

Comparaison des points de terminaison d'ingestion HTTP

Fonctionnalité Journaux HLC Journaux ND-JSON Journaux JSON structurés OpenTelemetry Journaux
Chemin /services/collector/event /ingest/bulk /ingest/json /v1/logs
Content-Type application/json application/json ou application/x-ndjson application/json application/json ou application/x-protobuf
Champ d'horodatage "time"(secondes) "timestamp"(millisecondes) "timestamp"(millisecondes) "timeUnixNano"(nanosecondes)
Champs obligatoires "event" Aucune Aucune Structure OTLP () "resourceLogs"
Réponse de réussite partielle Non Oui Oui Oui
Support des paramètres de requête Oui Oui Oui Non (en-têtes uniquement)
Métadonnées de l'entité Oui Oui Oui Non
Accepte les primitives Non Oui Non Non
Analyse syntaxique basée sur les lignes Non Oui Non Non
Support Protobuf Non Non Non Oui
En-tête Retry-After Non Non Non Oui

Choix d'un point de terminaison

  • Vous utilisez le format HLC ? Utilisez les journaux HLC. Vos charges utiles HLC existantes fonctionnent avec un minimum de modifications.

  • Des line-by-line journaux de streaming ? Utilisez les journaux ND-JSON. Idéal pour les pipelines de logs qui émettent un événement par ligne. Très flexible : accepte n'importe quel type de valeur JSON.

  • Vous envoyez des charges utiles JSON structurées ? Utilisez des journaux JSON structurés. Idéal pour les applications qui produisent des objets ou des tableaux JSON bien formés.

  • Vous l'utilisez déjà OpenTelemetry ? Utilisez OpenTelemetry les journaux. Accepte le format OTLP JSON ou Protobuf et prend en charge les réponses de réussite partielles avec une sémantique de nouvelle tentative.