Afficher les journaux acheminés vers Pub/Sub

Ce document explique comment trouver les entrées de journal que vous avez acheminées de Cloud Logging vers des sujets Pub/Sub, ce qui se produit en temps quasi réel. Nous vous recommandons d'utiliser Pub/Sub pour intégrer des journaux Cloud Logging à des logiciels tiers.

Lorsque vous acheminez des entrées de journal vers un sujet Pub/Sub, Logging publie chaque entrée de journal en tant que message Pub/Sub dès qu'il la reçoit. Les entrées de journal acheminées sont généralement disponibles quelques secondes après leur arrivée dans Logging, avec 99 % des entrées de journal disponibles en moins de 60 secondes.

Avant de commencer

Pour en savoir plus sur les récepteurs, consultez la page Présentation des modèles de routage et de stockage : récepteurs.

Pour obtenir des instructions sur l'acheminement de vos entrées de journal, consultez la section Acheminer les journaux vers les destinations compatibles.

Afficher les journaux

Pour afficher vos journaux au fur et à mesure qu'ils sont diffusés via Pub/Sub, procédez comme suit :

  1. Dans la Google Cloud console, accédez à la page Sujets :

    Accéder à Sujets

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Pub/Sub.

  2. Recherchez ou créez un abonnement au sujet utilisé dans le récepteur de journaux, puis extrayez une entrée de journal. Vous devrez peut-être attendre la publication d'une nouvelle entrée de journal.

Organisation des journaux

Le champ data de chaque message correspond à un objet LogEntry encodé en base64. Un abonné Pub/Sub peut par exemple extraire l'objet suivant d'un sujet qui reçoit des entrées de journal. L'objet affiché contient une liste qui ne comprend qu'un seul message. Notez toutefois que Pub/Sub peut renvoyer plusieurs messages lorsque plusieurs entrées de journal sont disponibles. Les valeurs data (environ 600 caractères) et ackId (environ 200 caractères) ont été raccourcies pour faciliter la lecture de l'exemple :

{
 "receivedMessages": [
  {
   "ackId": "dR1JHlAbEGEIBERNK0EPKVgUWQYyODM...QlVWBwY9HFELH3cOAjYYFlcGICIjIg",
   "message": {
    "data": "eyJtZXRhZGF0YSI6eyJzZXZ0eSI6Il...Dk0OTU2G9nIjoiaGVsbG93b3JsZC5sb2cifQ==",
    "attributes": {
     "compute.googleapis.com/resource_type": "instance",
     "compute.googleapis.com/resource_id": "123456"
    },
    "messageId": "43913662360"
   }
  }
 ]
}

Si vous décodez le data champ et le mettez en forme, vous obtenez l'objet suivant LogEntry :

{
  "log": "helloworld.log",
  "insertId": "2015-04-15|11:41:00.577447-07|10.52.166.198|-1694494956",
  "textPayload": "Wed Apr 15 20:40:51 CEST 2015 Hello, world!",
  "timestamp": "2015-04-15T18:40:56Z",
  "labels": {
    "compute.googleapis.com\/resource_type": "instance",
    "compute.googleapis.com\/resource_id": "123456"
  },
  "severity": "WARNING"
  }
}

Intégration de Pub/Sub avec des services tiers

Vous acheminez vos entrées de journal vers un sujet Pub/Sub. Le service tiers reçoit vos entrées de journal en s'abonnant au même sujet. Logging autorise l'intégration de la journalisation avec des services tiers tels que Splunk ou Datadog. Pour obtenir la liste actuelle des intégrations, consultez Partenaires pour les intégrations Google Cloud Observability.

Pour effectuer l'intégration, attendez-vous à effectuer une démarche semblable à la suivante :

  1. Dans le projet où vos entrées de journal sont générées, créez votre sujet Pub/Sub avec un abonnement par défaut :

    1. Activez l'API Pub/Sub.

      Rôles requis pour activer les API

      Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

      Activer l'API

    2. Dans la Google Cloud console, accédez à la page Sujets :

      Accéder à Sujets

      Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Pub/Sub.

    3. Cliquez sur Créer un sujet.

    4. Dans le champ ID du sujet, saisissez un ID pour votre sujet. Exemple : projects/my-project-id/topics/my-pubsub-topic.

      Chaque message envoyé au sujet inclut l'horodatage de l'entrée de journal acheminée dans les attributes du message Pub/Sub. Par exemple :

      "attributes": {
        "logging.googleapis.com/timestamp": "2024-07-01T00:00:00Z"
      }
      
    5. Conservez l'option Ajouter un abonnement par défaut. Ne sélectionnez aucune autre option.

    6. Cliquez sur Créer un sujet.

  2. Dans le projet où vos entrées de journal sont générées, configurez Logging pour acheminer les entrées de journal vers votre sujet :

    1. Dans la Google Cloud console, accédez à la page Routeur de journaux :

      Accéder à la page routeur de journaux

      Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.

    2. Cliquez sur Créer un récepteur, saisissez un nom et une description pour le récepteur, puis cliquez sur Suivant.
    3. Dans le menu Sink Service (Service du récepteur), sélectionnez Sujet Cloud Pub/Sub, sélectionnez le sujet Pub/Sub, puis cliquez sur Suivant.
    4. Sélectionnez les entrées de journal à inclure dans le récepteur, puis cliquez sur Suivant.
    5. Facultatif : sélectionnez les entrées de journal à exclure.
    6. Cliquez sur Créer un récepteur.

      Une boîte de dialogue contenant le message Récepteur créé s'affiche. Ce message indique que votre récepteur a bien été créé et qu'il dispose des autorisations nécessaires pour acheminer les entrées de futurs journaux correspondants vers la destination que vous avez sélectionnée.

    7. Attribuez les rôles IAM suivants au compte principal spécifié dans l'identité du rédacteur du récepteur :

      Pour en savoir plus sur l'obtention de l'identité du rédacteur et l'attribution d'un rôle, consultez Définir les autorisations de destination.

    Cloud Logging envoie désormais des entrées de journal à votre sujet Pub/Sub.

  3. Créez l'abonnement.

    Par exemple, si vous utilisez Dataflow pour extraire les données de votre sujet Pub/Sub et les envoyer à Datadog, vous devez effectuer deux étapes :

    1. Créez ou obtenez un compte de service, puis attribuez-lui les rôles IAM nécessaires pour vous abonner à votre sujet. Le compte de service nécessite au minimum les rôles suivants :

      Pour en savoir plus, consultez les documents suivants :

    2. Créez une tâche à partir d'un modèle, puis exécutez-la. Pour cet exemple, vous utiliserez le modèle Pub/Sub vers Datadog.

Le service tiers devrait commencer à recevoir immédiatement les entrées de journal.

Pour découvrir des scénarios de routage de journaux courants à l'aide de Pub/Sub, consultez Scénarios d'exportation de données Cloud Logging : Splunk.

Dépannage

Si des entrées de journal semblent manquantes dans la destination de votre récepteur ou si vous pensez que votre récepteur n'achemine pas correctement les entrées de journal, consultez Résoudre les problèmes de routage des journaux.

Tarifs

Pour en savoir plus sur les tarifs, consultez la page Tarifs de Google Cloud Observability. Si vous acheminez des données de journal vers d'autres Google Cloud services, consultez les documents suivants :