Analizzare il volume dei log con Log Analytics

Questo documento descrive come utilizzare Log Analytics per stimare il volume fatturabile delle voci di log. Puoi scrivere query che generano report e aggregare il volume fatturabile in base a diverse dimensioni, come il tipo di risorsa o il nome dell'applicazione, quindi creare grafici e visualizzare i risultati della query.

Come eseguire query per il volume fatturabile

Il volume fatturabile di una voce di log, ovvero la dimensione segnalata al fatturazione Cloud, è disponibile tramite il campo storage_bytes. Nelle query, puoi utilizzare il campo storage_bytes nello stesso modo in cui utilizzi qualsiasi campo dello schema il cui tipo di dati è INTEGER. Ad esempio, puoi includerlo nelle clausole SELECT, nelle istruzioni CASE e nelle espressioni di tabelle comuni. Per saperne di più sull'esecuzione di query sui log, consulta i seguenti documenti:

Poiché Cloud Billing utilizza il volume fatturabile per determinare i costi, puoi scrivere query che ti aiutino a comprendere le origini dei costi. Ad esempio, puoi scrivere query che ti aiutano a determinare quali applicazioni scrivono il maggior numero di voci di log. Per scoprire come correlare il volume fatturabile al costo, consulta le sezioni di Cloud Logging della pagina Prezzi di Google Cloud Observability.

Il volume fatturabile di una voce di log non corrisponde alle dimensioni dell'oggetto LogEntry inviato all'API Cloud Logging. Il volume fatturabile include i byte necessari per la serializzazione e i metadati.

Prima di iniziare

Questa sezione descrive i passaggi che devi completare prima di poter utilizzare Log Analytics.

Configura i bucket di log

Assicurati che i bucket di log siano stati sottoposti all'upgrade per utilizzare Analisi dei log:

  1. Nella console Google Cloud , vai alla pagina Archiviazione dei log:

    Vai ad Archiviazione dei log

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

  2. Per ogni bucket di log con una visualizzazione dei log che vuoi interrogare, assicurati che la colonna Log Analytics disponibile mostri Apri. Se viene visualizzato il pulsante Esegui l'upgrade, fai clic su Esegui l'upgrade e completa la finestra di dialogo.

Configura ruoli e autorizzazioni IAM

Questa sezione descrive i ruoli o le autorizzazioni IAM necessari per utilizzare Log Analytics:

  • Per ottenere le autorizzazioni necessarie per utilizzare Log Analytics ed eseguire query sulle visualizzazioni log, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:

    • Per eseguire query sui bucket di log _Required e _Default: Visualizzatore log (roles/logging.viewer)
    • Per eseguire query su tutte le visualizzazioni dei log in un progetto: Logs View Accessor (roles/logging.viewAccessor)

    Puoi limitare un'entità a una visualizzazione di log specifica aggiungendo una condizione IAM alla concessione del ruolo Accessore visualizzazione log effettuata a livello di progetto oppure aggiungendo un binding IAM al file dei criteri della visualizzazione di log. Per ulteriori informazioni, vedi Controllare l'accesso a una visualizzazione log.

    Si tratta delle stesse autorizzazioni necessarie per visualizzare le voci di log nella pagina Esplora log. Per informazioni su ruoli aggiuntivi necessari per eseguire query sulle visualizzazioni nei bucket definiti dall'utente o per eseguire query sulla visualizzazione _AllLogs del bucket di log _Default, vedi Ruoli Cloud Logging.

  • Per ottenere le autorizzazioni necessarie per eseguire query sulle visualizzazioni di analisi, chiedi all'amministratore di concederti il ruolo IAM Observability Analytics User (roles/observability.analyticsUser) sul progetto.

Query di esempio

Questa sezione fornisce query di esempio che analizzano i dati di una singola visualizzazione log. Se memorizzi i dati in più visualizzazioni log e vuoi calcolare i valori aggregati per i dati memorizzati in queste visualizzazioni, devi utilizzare l'istruzione UNION.

Puoi eseguire query sulla voce di log utilizzando la pagina Log Analytics o ovunque tu possa eseguire query sui set di dati BigQuery, incluse le pagine BigQuery Studio e Looker Studio e lo strumento a riga di comando bq.

Per utilizzare le query di esempio:

Query per volume di log per app

Per calcolare il totale dei byte al giorno per app per le voci di log scritte in relazione a una risorsa Google Kubernetes Engine e con un payload JSON, utilizza la seguente query:

SELECT
  timestamp_trunc(timestamp,DAY) as day,
  JSON_VALUE(labels["k8s-pod/app"]) as app_id,
  SUM(storage_bytes) as total_bytes
FROM
  `TABLE_NAME_OF_LOG_VIEW`
WHERE
  json_payload IS NOT NULL
  AND resource.type="k8s_container"
GROUP BY ALL

Per visualizzare i dati, puoi creare un grafico.

Nell'esempio seguente, i dati vengono visualizzati come grafico a barre in pila. Ogni barra del grafico mostra il numero totale di byte archiviati, organizzati per app. In questo esempio, l'app frontend genera la maggior parte dei dati di log:

Grafico di esempio che mostra i risultati della query per il volume dei log per app.

Eseguire query sul volume dei log in base al nome del log

Per elencare il numero di byte archiviati e il nome del log per ogni voce di log con un payload JSON e scritta in base a una risorsa Google Kubernetes Engine, utilizza la seguente query:

SELECT
  log_id AS log_name,
  storage_bytes
FROM
  `TABLE_NAME_OF_LOG_VIEW`
WHERE
  json_payload IS NOT NULL
  AND resource.type="k8s_container"

La query precedente non aggrega i risultati, ma esiste una riga per ogni voce di log e questa riga contiene un nome di log e il numero di byte archiviati. Se rappresenti questi dati in un grafico, puoi visualizzare la porzione di dati di log scritti in log diversi:

Grafico di esempio che mostra i risultati della query per il volume dei log in base al nome del log.

Il grafico precedente mostra che la maggior parte dei dati di log viene scritta nel log denominato stdout.

Utilizza lo strumento a riga di comando bq per eseguire query sul volume dei log in base al nome del log

Puoi includere il campo storage_bytes nelle query eseguite tramite la pagina BigQuery Studio o utilizzando lo strumento a riga di comando bq.

La seguente query riporta il nome del log e il numero di byte archiviati per ogni voce di log:

bq query --use_legacy_sql=false  'SELECT log_id as log_name,
  storage_bytes FROM `TABLE_NAME_OF_LOG_VIEW`'

Il risultato di questa query è simile al seguente:

+----------+---------------+
| log_name | storage_bytes |
+----------+---------------+
| stdout   |           716 |
| stdout   |           699 |
| stdout   |           917 |
| stdout   |           704 |

Ogni riga corrisponde a una voce di log. Il valore della colonna storage_bytes è il volume fatturabile per quella voce di log.

Limitazioni

Il campo storage_bytes è disponibile solo quando sono vere le seguenti condizioni:

  • È stato eseguito l'upgrade del bucket di log per utilizzare Analisi dei log.
  • La query viene eseguita nella pagina Log Analytics o in qualsiasi punto in cui puoi eseguire query sui set di dati BigQuery, incluse le pagine BigQuery Studio e Looker Studio e lo strumento a riga di comando bq.

  • La voce di log è stata scritta a partire dal 1° gennaio 2024.