Questo documento descrive come creare grafici dei risultati delle query di Log Analytics, il che consente di identificare schemi e tendenze nei dati dei log. Analisi dei log consente di cercare e aggregare i log per generare informazioni utili utilizzando query SQL.
Dopo aver eseguito una query, i risultati possono essere visualizzati in una tabella o convertiti in un grafico e la query e la relativa visualizzazione possono essere salvate in una dashboard.
Ad esempio, per vedere quali tipi di gravità vengono generati dai log, crea un grafico che mostri il numero di log generati nelle ultime 12 ore e suddividi i log per severity
. Lo screenshot seguente mostra i punti dati suddivisi in diversi tipi di gravità:
Prima di iniziare
Prima di utilizzare Log Analytics:
-
Per ottenere le autorizzazioni necessarie per utilizzare Log Analytics, 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 oppure aggiungendo un'associazione IAM al file del criterio 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. -
Per eseguire query sui bucket di log
-
Per ottenere le autorizzazioni necessarie per creare i grafici, chiedi all'amministratore di concederti il ruolo IAM Editor monitoraggio (
roles/monitoring.editor
) nel progetto. Assicurati che sia stato eseguito l'upgrade dei bucket di log per utilizzare Analisi dei log:
-
Nella console Google Cloud, vai alla pagina Archiviazione dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
- 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.
-
Seleziona i dati da visualizzare in un grafico
Per configurare i dati da visualizzare in un grafico, crea una query utilizzando SQL. Quando selezioni la scheda Grafico, il logging genera automaticamente un grafico in base ai risultati della query. Dopo aver eseguito la query e generato un grafico, puoi personalizzare la relativa configurazione modificando il tipo di grafico e selezionando le colonne per visualizzare dati diversi.
Per visualizzare i risultati della query sotto forma di grafico, esegui una query nel seguente modo:
-
Nella console Google Cloud, vai alla pagina Log Analytics:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Nel riquadro Query, inserisci una query e fai clic su Esegui.
Al termine della query, nella scheda Risultati, seleziona come visualizzare i risultati della query:
Tabella: solo formato tabulare.
Grafico: solo formato del grafico
Entrambe: formato grafico e tabulare.
Dopo aver selezionato la modalità di visualizzazione dei risultati della query, puoi configurare eventuali campi per la visualizzazione selezionata e salvare la query e i risultati in una dashboard personalizzata. Il formato salvato è tabulare se hai selezionato l'opzione Tabella. In caso contrario, il formato è un grafico.
Per i grafici, le opzioni di visualizzazione ti consentono di selezionare il tipo di grafico e le righe e le colonne da includere. Per ulteriori informazioni sulla configurazione del grafico, consulta Personalizzare la configurazione del grafico.
Personalizzare la configurazione del grafico
Puoi personalizzare la configurazione del grafico modificando il tipo di grafico, selezionando la dimensione e la misura da includere nel grafico e applicando un'analisi dettagliata. La dimensione viene utilizzata per raggruppare o classificare le righe ed è il valore dell'asse X. La misura, o il valore dell'asse Y, è una serie di dati tracciata rispetto all'asse Y.
Modificare il tipo di grafico
Puoi scegliere tra i seguenti tipi di grafici, a seconda del tipo di righe e colonne selezionate come dimensione e misura e di come vuoi visualizzare i dati.
Grafico a barre (predefinito): i grafici a barre tracciano i dati su due assi. Se il grafico utilizza una categoria o una stringa come dimensione, puoi impostare la configurazione del grafico a barre su orizzontale o verticale, in cui gli assi delle dimensioni e delle misure vengono scambiati.
Grafico a linee: i grafici a linee possono essere utilizzati per mostrare le variazioni dei dati nel tempo. Quando utilizzi un grafico a linee, ogni serie temporale viene mostrata da una linea diversa che corrisponde alle misure selezionate.
Se l'asse X è basato sul tempo, ogni punto dati viene posizionato all'inizio di un intervallo di tempo. Ogni punto dati è collegato tramite interpolazione lineare.
Grafico ad area in pila: un grafico ad area si basa su un grafico a linee e l'area sotto ogni linea è ombreggiata. Nei grafici ad area, le serie di dati sono in pila. Ad esempio, se hai due serie identiche, le serie si sovrappongono in un grafico a linee, ma l'area ombreggiata è in pila in un grafico ad area.
Grafico a torta o a ciambella: un grafico a torta mostra la relazione tra le categorie di un set di dati e l'intero set di dati, utilizzando un cerchio per rappresentare l'intero set di dati e spicchi nel cerchio per rappresentare le categorie nel set di dati. La dimensione di un trapezio indica quanto, spesso in termini percentuali, la categoria contribuisce al totale.
Tabella: una tabella mostra una riga per ogni riga del risultato della query. Le colonne della tabella sono definite dalla clausola
SELECT
. Se prevedi di visualizzare i dati in formato tabulare in una dashboard, utilizza una clausolaLIMIT
per limitare il numero di righe nel risultato a meno di qualche centinaio.Indicatore o prospetto: gli indicatori e i prospetti forniscono il valore più recente insieme a un'indicazione verde, ambra o rossa in base al confronto del valore con un insieme di soglie. A differenza degli indicatori, che mostrano solo informazioni sul valore più recente, i prospetti possono includere anche informazioni sui valori passati.
Gli indicatori e i prospetti possono visualizzare il risultato della query solo se il risultato della query contiene almeno una riga e questa riga contiene una colonna con un timestamp e una colonna con dati numerici. Il risultato della query può contenere più righe e più di due colonne.
Se vuoi eseguire l'aggregazione in base al tempo all'interno della query:
Configura la query per aggregare i dati in un intervallo di tempo, per ordinare i risultati in base ai timestamp decrescenti e per limitare il numero di righe nei risultati. Puoi utilizzare la clausola
LIMIT
o il selettore dell'intervallo di tempo per limitare il numero di righe nel risultato della query.Ad esempio, la seguente query aggrega i dati per ora, applica un limite e ordina i risultati:
SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count FROM `TABLE_NAME_OF_LOG_VIEW` WHERE severity IS NOT NULL AND severity = "DEFAULT" GROUP BY hour,severity ORDER BY hour DESC LIMIT 10
Imposta Dimensione in modo che corrisponda alla colonna che riporta l'unità di tempo. Ad esempio, se la query aggrega i dati per un'ora e crea una colonna denominata
hour
, imposta il menu Dimensione suhour
.Seleziona Disattiva intervallo perché la query specifica già l'intervallo di aggregazione. Nell'esempio, questo intervallo è di un'ora.
Imposta Misura sulla colonna numerica e imposta la funzione su none.
Se vuoi affidarti ad Analisi dei log per eseguire l'aggregazione in base al tempo per conto tuo, procedi nel seguente modo:
- Configura il selettore dell'intervallo di tempo, che influisce sul numero di righe nel risultato della query.
- Imposta Dimensione in modo che corrisponda alla colonna che riporta l'unità di tempo.
Ad esempio, potresti impostare questo menu su
timestamp
. - Imposta il menu Intervallo sull'intervallo di aggregazione su un intervallo specifico. Ad esempio, imposta il valore di questo campo su
1 hour
. Non selezionare Intervallo automatico. - Imposta Misura sulla colonna numerica e seleziona una funzione come somma.
Modificare la dimensione e la misura
Puoi scegliere quali righe e colonne includere nel grafico selezionando i campi delle dimensioni e delle misurazioni.
Dimensioni
La dimensione deve essere una colonna di timestamp, numerica o di stringa. Per impostazione predefinita, la dimensione è impostata sulla prima colonna basata su timestamp nello schema. Se nella query non è presente alcun timestamp, la prima colonna di stringhe viene selezionata come dimensione. Puoi anche personalizzare la dimensione nel pannello Visualizzazione del grafico. Quando una colonna del timestamp è selezionata come dimensione, il grafico mostra come cambiano i dati nel tempo.
Per impostazione predefinita, l'intervallo per i timestamp viene impostato automaticamente, ma puoi anche selezionare un intervallo personalizzato. Gli intervalli automatici modificano i valori in base al selettore dell'intervallo di tempo per mantenere gruppi di dimensioni simili.
Puoi anche disattivare l'intervallo, in modo da specificare le tue aggregazioni e intervalli di tempo all'interno della query per analisi più complesse. La disattivazione dell'intervallo imposta la funzione di aggregazione delle misure su
none
. Quando l'intervallo di dimensioni è disattivato, sono consentite solo le misure numeriche.Misura
Puoi selezionare più misure nel riquadro Visualizzazione del grafico. Quando selezioni una misura, devi selezionare anche la funzione di aggregazione da applicare ai relativi valori raggruppati, ad esempio
count
,sum
,average
epercentile-99
. Ad esempio,count-distinct
restituisce il numero di valori univoci in una determinata colonna.Se selezioni la casella di controllo Disattiva intervallo per la dimensione, è disponibile l'opzione della funzione di aggregazione
none
. Se la dimensione è un valore di stringa, la casella di controllo Disattiva intervallo non viene visualizzata. Tuttavia, anche l'intervallo viene disattivato se le funzioni di aggregazione di una misura vengono impostate sunone
.
Aggiungi una suddivisione
Per suddividere una singola serie di dati in più serie in base a un'altra colonna, aggiungi un'analisi dettagliata.
Quando selezioni una suddivisione, scegli colonne che contengono un numero ridotto di etichette brevi e significative, come region_name
, anziché campi che potrebbero contenere un numero elevato di stringhe o stringhe lunghe, come textPayload
.
Ad esempio, consulta la seguente configurazione del grafico, in cui il campo Dimensione è impostato su type, il campo Misura è impostato su Conta righe e il campo Suddivisione è impostato su gravità:
Il seguente grafico è un esempio di grafico con un'analisi dettagliata aggiunta:
Nello screenshot precedente viene visualizzata una serie di dati cumulativi, in cui il tipo di risorsa k8s_container
è suddiviso in diversi tipi di severity
. In questo modo, puoi identificare quanti log di ogni tipo di gravità sono stati generati da una determinata risorsa.
Salvare un grafico in una dashboard personalizzata
Dopo aver generato un grafico dalla query, puoi salvarlo in una dashboard personalizzata. Le dashboard personalizzate ti consentono di visualizzare e organizzare le informazioni utili utilizzando diversi tipi di widget. Queste dashboard ti consentono anche di definire variabili, ovvero filtri a livello di dashboard che si applicano solo a widget specifici. Per applicare una variabile a un widget, devi modificare la query. Per ulteriori informazioni, consulta Applicare una variabile a un widget.
Ad esempio, puoi creare una dashboard che fornisca dettagli sull'utilizzo dei bucket Cloud Storage:
Per salvare il grafico in una dashboard:
-
Nella console Google Cloud, vai alla pagina Log Analytics:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Esegui una query per generare un grafico, quindi fai clic su Salva grafico nella scheda Grafico.
Nella finestra di dialogo Salva nella dashboard, inserisci un titolo per il grafico e seleziona la dashboard in cui vuoi salvarlo.
(Facoltativo) Per visualizzare la dashboard personalizzata, nel messaggio popup, fai clic su Visualizza dashboard.
Per visualizzare un elenco di dashboard personalizzate contenenti grafici generati dalle query SQL di Analisi dei log, vai al pulsante Salva grafico e fai clic su arrow_drop_down Menu.
Modificare un grafico salvato in una dashboard personalizzata
Per modificare i grafici generati dalle query SQL di Log Analytics salvate in una dashboard, consulta Modificare la configurazione di un widget. Nella finestra di dialogo Configura widget, puoi modificare la query utilizzata per generare un grafico oppure personalizzare la configurazione del grafico per visualizzare dati diversi.
Limitazioni
Se il tuo progetto Google Cloud si trova in una cartella che utilizza Assured Workloads, i grafici che generi non possono essere visualizzati in una dashboard personalizzata.
I filtri a livello di dashboard non vengono applicati ai grafici generati da una query SQL di Log Analytics.
Query di esempio
Questa sezione fornisce query SQL di esempio per creare grafici dei risultati delle query. Per ottenere informazioni più utili dai log, personalizza la configurazione del grafico. Per utilizzare le query di esempio:
-
Nella console Google Cloud, vai alla pagina Log Analytics:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Identifica il nome della tabella per la visualizzazione dei log su cui vuoi eseguire una query.
Per identificare questo nome, vai all'elenco Visualizzazioni log, locate la visualizzazione log e seleziona Query. Il riquadro Query viene compilato con una query predefinita, che include il nome della tabella della vista log su cui viene eseguita la query. Il nome della tabella ha il formato
project_ID.region.bucket_ID.view_ID
.Per ulteriori informazioni su come accedere alla query predefinita, consulta Eseguire query su una visualizzazione dei log.
Sostituisci TABLE_NAME_OF_LOG_VIEW con il nome della tabella della vista di log su cui vuoi eseguire una query, poi copia la query.
Incolla la query nel riquadro Query, quindi fai clic su Esegui query.
Grafico delle voci di log per posizione e gravità
La seguente query seleziona location
e severity
, con la località
interpretata come stringa:
SELECT
CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
severity,
FROM
`TABLE_NAME_OF_LOG_VIEW`
Un grafico e una configurazione di grafico di esempio sono riportati di seguito:
Nello screenshot precedente, la configurazione del grafico è la seguente:
- Tipo di grafico: grafico a barre orizzontali
- Dimensione:
location
, con un limite di 10 - Misura: Conteggio righe
- Suddivisione:
severity
, con un limite di cinque
Grafici degli audit log di accesso ai dati BigQuery
La seguente query filtra gli audit log data_access
di BigQuery e seleziona determinati campi, ad esempio user_email
, ip
, auth_permission
e job_execution_project
. Ad esempio, puoi creare un grafico che visualizzi
la frequenza di utilizzo dell'API BigQuery di ciascun principale nel tempo.
SELECT
timestamp,
proto_payload.audit_log.authentication_info.principal_email as user_email,
proto_payload.audit_log.request_metadata.caller_ip as ip,
auth.permission as auth_permission,
auth.granted as auth_granted,
JSON_VALUE(data_access.resource.labels.project_id) AS job_execution_project,
SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(1)] AS referenced_project,
SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(3)] AS referenced_dataset,
SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(5)] AS referenced_table
FROM `TABLE_NAME_OF_LOG_VIEW` as data_access,
UNNEST(proto_payload.audit_log.authorization_info) AS auth
WHERE
log_id="cloudaudit.googleapis.com/data_access"
AND data_access.resource.type = 'bigquery_dataset'
Un grafico e una configurazione di grafico di esempio sono riportati di seguito:
Nello screenshot precedente, la configurazione del grafico è la seguente:
- Tipo di grafico: grafico a barre verticale
- Dimensione:
user_email
, con un limite di cinque - Misura: Conteggio righe
- Suddivisione:
auth_permission
, con un limite di cinque
Limitazioni
Le colonne selezionate devono contenere almeno una riga con un valore diverso da null.
Se salvi una query e personalizzi la configurazione del grafico, la configurazione del grafico personalizzato non viene salvata.
Se la query contiene già aggregazioni, il grafico generato potrebbe essere diverso a causa di un'aggregazione aggiuntiva applicata automaticamente da Log Analytics.
I percorsi JSON devono essere convertiti in stringhe e numeri per poter essere visualizzati in un grafico.
Passaggi successivi
Per una panoramica di Analisi dei log, consulta Panoramica delle query e dell'analisi dei log.
Per query di esempio, consulta Query SQL di esempio.
Per scoprire come eseguire analisi con i log di controllo utilizzando Analisi dei log, consulta Query SQL per gli approfondimenti sulla sicurezza.