Visualizzare i log con routing a Pub/Sub

Questo documento spiega come trovare le voci di log che hai indirizzato da Cloud Logging agli argomenti Pub/Sub, il che avviene quasi in tempo reale. Consigliamo di utilizzare Pub/Sub per integrare i log di Cloud Logging con software di terze parti.

Quando indirizzi le voci di log a un argomento Pub/Sub, Logging pubblica ogni voce di log come messaggio Pub/Sub non appena la riceve. Le voci di log instradate sono generalmente disponibili entro pochi secondi dal loro arrivo in Logging, con il 99% delle voci di log disponibili in meno di 60 secondi.

Prima di iniziare

Per una discussione concettuale degli elementi di destinazione, consulta Panoramica dei modelli di routing e archiviazione: elementi di destinazione.

Per istruzioni su come instradare le voci di log, consulta Instradare i log verso destinazioni supportate.

Visualizza i log

Per visualizzare i log mentre vengono trasmessi in streaming tramite Pub/Sub, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Topic:

    Vai ad Argomenti

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Pub/Sub.

  2. Trova o crea una sottoscrizione all'argomento utilizzato nell'emissario di log ed estrai da qui una voce di log. Potresti dover attendere la pubblicazione di una nuova voce di log.

Organizzazione dei log

Il campo data di ogni messaggio è un oggetto LogEntry codificato in base64. Ad esempio, un sottoscrittore Pub/Sub potrebbe estrarre il seguente oggetto da un argomento che riceve voci di log. L'oggetto mostrato contiene un elenco con un singolo messaggio, anche se Pub/Sub potrebbe restituire più messaggi se sono disponibili più voci di log. Il valore data (circa 600 caratteri) e il valore ackId (circa 200 caratteri) sono stati abbreviati per facilitare la lettura dell'esempio:

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

Se decodifichi il campo data e lo formatti, ottieni il seguente oggetto 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"
  }
}

Integrazione di terze parti con Pub/Sub

Indirizzi le voci di log a un argomento Pub/Sub. La terza parte riceve le tue voci di log sottoscrivendo lo stesso argomento. La registrazione supporta l'integrazione con terze parti, come Splunk o Datadog. Per un elenco aggiornato delle integrazioni, consulta la sezione Partner per le integrazioni di Google Cloud Observability.

Per eseguire l'integrazione, dovrai svolgere le seguenti operazioni:

  1. Nel progetto in cui hanno origine le voci di log, crea l'argomento Pub/Sub con una sottoscrizione predefinita:

    1. Abilita l'API Pub/Sub.

      Enable the API

    2. Nella console Google Cloud, vai alla pagina Topic:

      Vai ad Argomenti

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Pub/Sub.

    3. Fai clic su Crea argomento.

    4. Nel campo ID argomento, inserisci un ID per l'argomento. Ad esempio, projects/my-project-id/topics/my-pubsub-topic.

      Ogni messaggio inviato all'argomento include il timestamp della voce di log indirizzata nel messaggio Pub/Sub attributes; ad esempio:

      "attributes": {
        "logging.googleapis.com/timestamp": "2024-07-01T00:00:00Z"
      }
      
    5. Mantieni l'opzione Aggiungi una sottoscrizione predefinita. Non selezionare nessun'altra opzione.

    6. Fai clic su Crea argomento.

  2. Nel progetto da cui provengono le voci di log, configura Logging in modo da instradarle all'argomento:

    1. Nella console Google Cloud, vai alla pagina Log Router:

      Vai a Router dei log

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

    2. Fai clic su Crea destinazione, inserisci un nome e una descrizione per la destinazione e poi fai clic su Avanti.
    3. Nel menu Servizio sink, seleziona Argomento Cloud Pub/Sub, seleziona l'argomento Pub/Sub e poi fai clic su Avanti.
    4. Seleziona le voci di log da includere nel sink e poi fai clic su Avanti.
    5. (Facoltativo) Seleziona le voci di log da escludere.
    6. Fai clic su Crea sink.

      Viene visualizzata una finestra di dialogo con il messaggio Dispositivo di svuotamento creato. Questo messaggio indica che il sink è stato creato correttamente con le autorizzazioni per inoltrare le future voci di log corrispondenti alla destinazione selezionata.

    7. Concedi il ruolo di Publisher Pub/Sub (roles/pubsub.publisher) all'identità dello scrittore dell'emissario. Per ulteriori informazioni su come ottenere l'identità autore e concedere un ruolo, consulta Impostare le autorizzazioni di destinazione.

    Cloud Logging ora invia voci di log al tuo argomento Pub/Sub.

  3. Crea l'abbonamento.

    Ad esempio, se utilizzi Dataflow per recuperare i dati dall'argomento Pub/Sub e inviarli a Datadog, devi eseguire due passaggi:

    1. Crea o ottieni un account di servizio e poi assegnagli i ruoli IAM necessari per iscriverti al tuo argomento. Come minimo, il account di servizio richiede i seguenti ruoli:

      Per ulteriori informazioni, consulta i seguenti documenti:

    2. Crea un job da un modello e poi eseguilo. Per questo esempio, utilizza il modello Pub/Sub to Datadog.

La terza parte dovrebbe iniziare a ricevere le voci di log immediatamente.

Per un'esplorazione degli scenari di routing dei log comuni che utilizzano Pub/Sub, consulta Scenari per l'esportazione di dati Cloud Logging: Splunk.

Risoluzione dei problemi

Se sembra che manchino voci di log nella destinazione del tuo sink o se sospetti che il sink non inoltri correttamente le voci di log, consulta Risolvere i problemi relativi all'inoltro dei log.

Prezzi

Cloud Logging non addebita alcun costo per il routing dei log a una destinazione supportata. Tuttavia, la destinazione potrebbe applicare dei costi. Ad eccezione del bucket di log _Required, Cloud Logging addebita lo streaming dei log nei bucket di log e per l'archiviazione per un periodo superiore al periodo di conservazione predefinito del bucket di log.

Cloud Logging non addebita alcun costo per la copia dei log, per la definizione degli ambiti dei log o per le query inviate tramite le pagine Esplora log o Analisi dei log.

Per ulteriori informazioni, consulta i seguenti documenti: