Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Comprensione dei concetti relativi alle interrogazioni pianificate
Prima di creare interrogazioni pianificate, è necessario comprendere questi concetti chiave che influiscono sulla modalità di esecuzione delle query e sul luogo in cui vengono forniti i risultati.
Separazione dei ruoli IAM
Le query pianificate richiedono due ruoli IAM separati: uno per l'esecuzione delle query e l'altro per fornire risultati a destinazioni come bucket Amazon S3, bus di EventBridge eventi Amazon o tabelle di ricerca. Comprendere il motivo per cui esiste questa separazione ti aiuta a configurare correttamente le autorizzazioni e a utilizzare i vantaggi operativi e di sicurezza che offre.
L'architettura a due ruoli divide le responsabilità tra accesso e distribuzione dei dati. Il ruolo di esecuzione delle query accede ai dati di registro ed esegue le query, mentre il ruolo di destinazione di consegna scrive i risultati nella destinazione prescelta. Questa separazione segue il principio del privilegio minimo: ogni ruolo dispone solo delle autorizzazioni necessarie per la sua funzione specifica.
- Ruolo di esecuzione delle interrogazioni
-
Consente a CloudWatch Logs di eseguire query CloudWatch Logs Insights per tuo conto. Questo ruolo richiede le autorizzazioni per accedere ai gruppi di log ed eseguire le query, ma non ha bisogno dell'accesso alle risorse di destinazione. Autorizzazioni richieste:
-
logs:StartQuery -
logs:StopQuery -
logs:GetQueryResults -
logs:DescribeLogGroups -
logs:Unmaskse è richiesto l'annullamento della mascheratura dei dati
Per i gruppi di KMS-encrypted log:
kms:Decryptekms:DescribeKeyle autorizzazioni per la chiave KMS utilizzata per crittografare i gruppi di log. Anche queste autorizzazioni devono essere aggiunte.Requisito della relazione di fiducia: il ruolo di esecuzione della query deve includere una politica di fiducia che consenta al servizio CloudWatch Logs (
logs.amazonaws.com) di assumere il ruolo. Senza questa relazione di fiducia, le query pianificate falliranno con errori di autorizzazione.Esempio di politica di fiducia per il ruolo di esecuzione della query:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Esempio di politica di autorizzazione per il ruolo di esecuzione della query:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "logs:DescribeLogGroups" ], "Resource": "*" } ] } -
- Ruolo di consegna della destinazione
-
Consente a CloudWatch Logs di fornire i risultati delle query alla destinazione prescelta. Questo ruolo richiede solo le autorizzazioni per il servizio di destinazione specifico, in base al principio del privilegio minimo. Le autorizzazioni richieste variano in base al tipo di destinazione.
Requisito della relazione di fiducia: il ruolo di consegna della destinazione deve includere anche una politica di fiducia che consenta al servizio CloudWatch Logs (
logs.amazonaws.com) di assumere il ruolo.Esempio di politica di autorizzazione per il ruolo di consegna a destinazione S3:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::your-scheduled-query-results-bucket/*" } ] }Esempio di politica delle autorizzazioni per un ruolo di consegna della destinazione nella tabella di ricerca:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLookupTable", "logs:UpdateLookupTable", "logs:GetQueryResults" ], "Resource": "*" } ] }
Questa separazione offre vantaggi pratici per le tue operazioni. Dal punto di vista della sicurezza, se è necessario modificare il luogo di consegna dei risultati, è sufficiente modificare il ruolo di destinazione senza modificare le autorizzazioni di esecuzione delle query. Per la conformità e il controllo, puoi tracciare chiaramente quale ruolo accede ai dati di registro sensibili e quale ruolo scrive su sistemi esterni. In questo modo è più facile dimostrare che l'infrastruttura di analisi dei log segue le best practice di sicurezza.
Cross-region e utilizzo su più account
Una query pianificata viene creata in una regione specifica e viene eseguita in quella regione. Tuttavia, puoi interrogare i gruppi di log e fornire risultati in tutte le regioni e gli account. È necessario configurare uno o più AWS account come account di monitoraggio e collegarli a più account di origine. Un account di monitoraggio è un AWS account centrale in grado di visualizzare e interagire con i dati di osservabilità generati dagli account di origine. Un account di origine è un AWS account individuale che genera dati di osservabilità per le risorse che vi risiedono. Gli account di origine condividono i dati di osservabilità con l'account di monitoraggio. Quindi puoi impostare query pianificate dall'account di monitoraggio utilizzando i gruppi di log di tutti gli account collegati.
- Interrogazione di gruppi di log interregionali
-
L'interrogazione pianificata può accedere ai gruppi di log in qualsiasi regione. Specifica i gruppi di log utilizzando il loro formato ARN completo:
arn:aws:logs:region:account-id:log-group:log-group-name. I requisitilogs:StartQuerye lelogs:GetQueryResultsautorizzazioni del ruolo di esecuzione delle query per i gruppi di log in tutte le regioni di destinazione.
Importante
Quando si interrogano i gruppi di log o si forniscono risultati in più regioni, i dati di log superano i confini regionali. Considera i seguenti aspetti:
-
Requisiti di residenza dei dati: assicurati che il trasferimento dei dati tra regioni sia conforme alle politiche di governance dei dati e ai requisiti normativi della tua organizzazione
-
Costi di trasferimento dei dati: il trasferimento Cross-region dei dati comporta costi aggiuntivi
-
Latenza di rete: le query che accedono a gruppi di log in regioni distanti possono presentare una latenza maggiore
Per prestazioni ottimali ed efficienza in termini di costi, crea query pianificate nella stessa regione dei gruppi di log principali.
Approccio alternativo: utilizza la centralizzazione dei CloudWatch log per replicare i dati di log provenienti da più account e regioni in un account di monitoraggio centrale. Ciò consente di creare query pianificate in un'unica regione che accedano a tutti i log centralizzati, evitando query interregionali e semplificando la gestione delle autorizzazioni IAM.
Pianifica le espressioni e la gestione dei fusi orari
La pianificazione definita determina quando viene eseguita la query e la frequenza di esecuzione. La scelta dell'espressione di pianificazione corretta influisce sul momento in cui si ricevono i risultati e sulla quantità di dati interrogati. La comprensione dei tipi di espressione consente di scegliere tra semplicità e precisione.
Le espressioni Cron forniscono un controllo preciso sulla tempistica, consentendo di specificare orari, giorni della settimana o giorni del mese esatti. Usa le espressioni cron quando hai bisogno che le query vengano eseguite in orari lavorativi specifici o in linea con le pianificazioni operative. Nella console puoi anche pianificare le query utilizzando semplici opzioni di calendario.
- Espressioni Cron
-
Esegui le interrogazioni in momenti specifici. Formato:
cron(minute hour day-of-month month day-of-week year). Esempi:-
cron(0 9 * * ? *)- Ogni giorno alle 9:00 UTC -
cron(0 18 ? * MON-FRI *)- Giorni feriali alle 18:00 UTC -
cron(0 0 1 * ? *)- Il primo giorno di ogni mese a mezzanotte UTC -
cron(0 12 ? * SUN *)- Ogni domenica a mezzogiorno UTC -
cron(30 8 1 1 ? *)- 1° gennaio alle 8:30 UTC
-
Tutte le interrogazioni pianificate vengono eseguite in UTC, indipendentemente dal fuso orario locale o da dove si trovano le risorse. AWS Ciò è particolarmente importante quando si pianificano le query per l'orario di lavoro o per analisi sensibili al fattore tempo. Ad esempio, se la tua azienda opera nell'ora orientale degli Stati Uniti e desideri un rapporto giornaliero alle 9:00 ET, devi tenere conto della differenza UTC (14:00 UTC durante l'ora legale, 13:00 UTC altrimenti). Pianifica le espressioni di pianificazione tenendo conto dell'UTC per garantire che le query vengano eseguite negli orari previsti.
Scelta di un linguaggio di interrogazione
Le interrogazioni pianificate supportano tre diversi linguaggi di interrogazione e la tua scelta influisce sia sul modo in cui scrivi le query sia sulla facilità con cui il tuo team può gestirle. La lingua giusta dipende dai requisiti di analisi e dalle competenze esistenti del team.
Se stai principalmente filtrando e aggregando i dati di registro, CloudWatch Logs Insights Query Language offre la sintassi più semplice. Per trasformazioni di dati complesse in cui è necessario rimodellare o arricchire i dati in più passaggi, l'approccio basato sulla pipeline di PPL semplifica l'applicazione della logica. Quando è necessario eseguire join o aggregazioni complesse simili alle operazioni di database, SQL fornisce una sintassi familiare che i team esperti di database possono adottare rapidamente.
- CloudWatch Logs Insights Query Language (CWLI)
-
Purpose-built per l'analisi dei log con sintassi intuitiva. Ideale per:
-
Text-based analisi e filtraggio dei log
-
Time-series aggregazioni e statistiche
-
Team che non conoscono l'analisi dei log
-
- OpenSearch Service Piped Processing Language (PPL)
-
Pipeline-based linguaggio di interrogazione con potenti funzionalità di trasformazione dei dati. Ideale per:
-
Trasformazioni e arricchimento di dati complessi
-
Multi-step flussi di lavoro per l'elaborazione dei dati
-
Team che hanno familiarità con l'elaborazione basata su pipeline
-
- OpenSearch Service Structured Query Language (SQL)
-
Sintassi SQL standard per interrogazioni familiari in stile database. Ideale per:
-
Unioni e aggregazioni complesse
-
Business intelligence e reportistica
-
Team con una forte esperienza in SQL
-
Selezione della destinazione e casi d'uso
Il luogo in cui invii i risultati delle query determina cosa puoi fare con essi. Questa scelta modella l'intero flusso di lavoro a valle, che si tratti di creare analisi a lungo termine, attivare risposte automatiche o entrambe le cose. Comprendere i punti di forza di ogni tipo di destinazione ti aiuta a progettare l'architettura giusta per il tuo caso d'uso.
Le destinazioni Amazon S3 sono ottimizzate per lo storage e l'elaborazione in batch. Quando devi conservare i risultati delle query per mesi o anni, analizzare le tendenze nel tempo o inserire dati in piattaforme di analisi, Amazon S3 offre uno storage conveniente con conservazione illimitata. EventBridge le destinazioni sono ottimizzate per l'automazione in tempo reale. Quando i risultati delle query devono innescare azioni immediate, come l'invio di avvisi, l'avvio di flussi di lavoro o l'aggiornamento dei sistemi, i risultati si ottengono sotto forma EventBridge di eventi a cui le applicazioni possono rispondere istantaneamente. Per impostazione predefinita, tutti gli eventi di completamento delle query vengono inviati automaticamente come eventi al bus di eventi predefinito, consentendo l'integrazione con i sistemi di elaborazione a valle, le funzioni Lambda o altre architetture basate sugli eventi. I risultati vengono pubblicati nelle destinazioni solo quando la query viene eseguita correttamente. Le destinazioni delle tabelle di ricerca sono ottimizzate per mantenere aggiornati i dati di riferimento. Una destinazione della tabella di ricerca popola o aggiorna automaticamente la tabella di ricerca specificata con i risultati della query a ogni esecuzione pianificata, in modo che altre query possano fare riferimento ai dati più recenti con il comando. lookup
- Destinazioni di Amazon S3
-
Archivia i risultati delle query come file JSON per la conservazione a lungo termine e l'elaborazione in batch. Ideale per:
-
Analisi storica e archiviazione dei dati
-
Integrazione con data lake e piattaforme di analisi
-
Requisiti di conformità e audit
-
Cost-effective archiviazione di set di risultati di grandi dimensioni
-
- EventBridge destinazioni
-
Invia i risultati delle query come eventi per l'elaborazione e l'automazione in tempo reale. È possibile recuperare i risultati delle query utilizzando il QueryID inviato in caso di durata massima di 30 giorni, poiché archiviamo i risultati per 30 giorni. Ideale per:
-
Attivazione di risposte automatiche ai risultati delle query
-
Integrazione con flussi di lavoro serverless e funzioni Lambda
-
Real-time sistemi di allerta e notifica
-
Event-driven architetture e microservizi
-
- Destinazioni delle tabelle di ricerca
-
Crea o aggiorna automaticamente una tabella di ricerca con i risultati delle query su ogni esecuzione pianificata. Ogni aggiornamento sostituisce completamente il contenuto della tabella. Ideale per:
-
Mantenere aggiornati i dati di riferimento per il
lookupcomando nelle query di registro -
Gestione degli elenchi consentiti, delle denylist o degli inventari delle entità derivati dai dati di registro
-
Arricchimento delle query con riepiloghi delle attività recenti, ad esempio elenchi di utenti o risorse attivi
-
Formato e struttura dei risultati delle query
Per le destinazioni Amazon S3: i risultati delle query vengono forniti in formato JSON con la stessa struttura della risposta GetQueryResults API. Per Amazon, EventBridge comprendere il formato dei risultati delle query pianificate aiuta a progettare flussi di lavoro di elaborazione e integrazione a valle.
I risultati delle query vengono forniti in formato JSON con la seguente struttura:
{ "version": "0", "id": "be72061b-eca2-e068-a7e1-83e01d6fe807", "detail-type": "Scheduled Query Completed", "source": "aws.logs", "account": "123456789012", "time": "2025-11-18T11:31:48Z", "region": "us-east-1", "resources": [ "arn:aws:logs:us-east-1:123456789012:scheduled-query:477b4380-b098-474e-9c5e-e10a8cc2e6e7" ], "detail": { "queryId": "2038fd57-ab4f-4018-bb2f-61d363f4a004", "queryString": "fields @timestamp, @message, @logStream, @log\n| sort @timestamp desc\n| limit 10000", "logGroupIdentifiers": [ "/aws/lambda/my-function" ], "status": "Complete", "startTime": 1763465460, "statistics": { "recordsMatched": 0, "recordsScanned": 0, "estimatedRecordsSkipped": 0, "bytesScanned": 0, "estimatedBytesSkipped": 0, "logGroupsScanned": 1 } } }
Gli elementi chiave includono:
-
statistics- Metriche relative alle prestazioni delle query, tra cui record abbinati, scansionati, byte elaborati e dati stimati ignorati -
startTime- Quando è iniziata l'esecuzione della query (timestamp Unix) -
queryString- L'interrogazione effettiva che è stata eseguita -
queryId- ID della query utilizzando il quale è possibile recuperare i risultati -
logGroupIdentifiers- Elenco dei gruppi di log che sono stati interrogati -
status- Stato di esecuzione della query (Completata, Non riuscita, ecc.)