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 registrano e aggregano il volume fatturato in base a dimensioni diverse, come il tipo di risorsa o il nome dell'applicazione, quindi creare grafici e visualizzare i risultati delle query.

Come eseguire query sul volume fatturabile

Il volume fatturabile di una voce di log, ovvero le dimensioni riportate 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 di cui il tipo di dati è INTEGER. Ad esempio, puoi includerlo nelle clausole SELECT, nelle istruzioni CASE e nelle espressioni di tabelle comuni. Per ulteriori informazioni su come eseguire query sui log, consulta i seguenti documenti:

Poiché la fatturazione Cloud utilizza il volume fatturabile per determinare i costi, puoi scrivere query che ti aiutano a comprendere le origini dei costi. Ad esempio, puoi scrivere query che ti aiutano a determinare quali applicazioni stanno scrivendo il maggior numero di voci di log. Per scoprire come correlare il volume fatturato al costo, consulta la sezione Riepilogo dei prezzi di Cloud Logging e Prezzi di Cloud Logging.

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 da completare prima di poter utilizzare Log Analytics.

Configura i bucket di log

Assicurati che sia stato eseguito l'upgrade dei bucket di log 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 vista log per cui vuoi eseguire una query, assicurati che la colonna Log Analytics disponibile mostri Aperto. Se viene visualizzato Esegui l'upgrade, fai clic su Esegui l'upgrade e completa la finestra di dialogo.

Configura i ruoli e le autorizzazioni IAM

Questa sezione descrive i ruoli o le autorizzazioni IAM obbligatori 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 nel 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 Accesso alla visualizzazione dei log effettuata a livello di progetto o aggiungendo un'associazione IAM al file di criteri della visualizzazione di log. Per ulteriori informazioni, consulta Controllare l'accesso a una visualizzazione dei log.

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

Query di esempio

Questa sezione fornisce query di esempio che analizzano i dati di una singola visualizzazione dei log. Se memorizzi i dati in più visualizzazioni dei 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 qualsiasi posizione in cui puoi eseguire query sui set di dati BigQuery, tra cui le pagine BigQuery Studio e Looker Studio e lo strumento a riga di comando bq.

Per utilizzare le query di esempio:

Esegui query sul volume dei log per app

Per calcolare i byte totali al giorno, per app, per le voci di log che sono state scritte in base a una risorsa Google Kubernetes Engine e che hanno 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 dei log:

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

Esegui una query per il volume dei log in base al nome

Per elencare il numero di byte memorizzati e il nome del log per ogni voce di log che ha un payload JSON e che è stata 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 contiene una riga per ogni voce di log, che contiene il nome del log e il numero di byte memorizzati. Se li rappresenti in un grafico, puoi visualizzare la parte dei dati dei log scritta in log diversi:

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

Il grafico precedente mostra che la maggior parte dei dati dei 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

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 la voce di log.

Limitazioni

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

  • Viene eseguito l'upgrade del bucket di log per l'utilizzo di 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.