Creare una pianificazione per l'esecuzione automatica di una query di ricerca salvata
Dopo aver creato una ricerca salvata, è possibile pianificare l'esecuzione periodica della query nella ricerca salvata e instradare il risultato dell'esecuzione della query al servizio di monitoraggio.
Altri argomenti per i task pianificati:
-
Consenti agli utenti di eseguire tutte le operazioni sui task pianificati
-
Visualizza tutti i task pianificati in un compartimento mediante l'API
I passi riportati di seguito sono illustrati con il servizio di monitoraggio come destinazione per il monitoraggio del task pianificato. Le metriche emesse da Oracle Logging Analytics vengono memorizzate dal servizio di monitoraggio.
-
Aprire il menu di navigazione e fare clic su Osservabilità e gestione. In Logging Analytics, fare clic su Amministrazione. Viene visualizzata la pagina Panoramica dell'amministrazione.
Le risorse di amministrazione sono elencate nel riquadro di navigazione a sinistra in Risorse. Fare clic su Regole di rilevamento.
Viene visualizzata la pagina Regole di rilevamento. Fai clic su Create rule.
Viene visualizzata la finestra di dialogo Crea regola di rilevamento.
-
Fare clic su Regola di rilevamento ricerca pianificata.
-
Specificare un nome regola per il task pianificato.
-
In Selezionare una ricerca salvato:
Specificare la ricerca salvata per la quale si desidera creare una schedulazione. Selezionare innanzitutto il compartimento in cui è stata salvata la ricerca salvata.
Quindi, dal menu, selezionare Ricerca salvata.
Vengono visualizzati i dettagli della ricerca salvata, ad esempio la query e la relativa descrizione.
-
In Frequenza di impostazione:
Specificare Intervallo, la finestra di aggregazione. È possibile ottimizzare la pianificazione da eseguire nei Minuti, Ore, Giorni o Settimane selezionati. Inoltre, quando si selezionano aggregazioni di dimensioni maggiori, ad esempio Giorni, è possibile specificare l'aggregazione più precisa all'interno dell'intervallo, ad esempio l'ora del giorno in cui la query deve essere eseguita.
È possibile specificare la frequenza di esecuzione della query, ad esempio
Run indefinitely
,Run once
oCustom
.È inoltre possibile includere Conteggio ripetizioni nella specifica di frequenza per il numero di volte in cui la query deve essere eseguita.
-
In Selezionare un servizio di destinazione da configurare:
-
Selezionare il servizio di destinazione in cui vengono pubblicati i risultati dell'esecuzione della query, ad esempio
Monitoring
.Il servizio di monitoraggio memorizza le metriche per il risultato dell'esecuzione della query in base a una pianificazione.
-
Selezionare Compartimento metrica, il compartimento in cui verrà creata la metrica. Per impostazione predefinita, Oracle Logging Analytics seleziona un compartimento.
-
Selezionare Spazio di nomi metrica, lo spazio di nomi della metrica in cui si desidera inserire la nuova metrica. L'ambito delle opzioni disponibili per la selezione dello spazio di nomi viene definito dalla selezione del compartimento di metrica nel passo precedente. Se le opzioni non sono disponibili, è inoltre possibile immettere un nuovo valore per lo spazio di nomi.
Nota
Quando si specifica un nuovo valore per lo spazio di nomi, selezionare un nome che non inizi conoracle_
eoci_
. Sono prefissi riservati. Vedere Pubblicazione di metriche personalizzate. -
Facoltativamente, selezionare Gruppo di risorse, ovvero il gruppo a cui appartiene la metrica. Un gruppo di risorse è una stringa personalizzata fornita con una metrica personalizzata.
-
Immettere Nome metrica, il nome della metrica, utilizzato in Monitoring Service Explorer per visualizzare le metriche. È possibile specificare solo una metrica.
Per facilitare l'identificazione nell'Explorer delle metriche, si consiglia di includere il nome della ricerca salvata nel nome della metrica, ad esempio <mysavedsearchname><metric_name>.
-
-
Facoltativamente, espandere la sezione Mostra opzioni avanzate e aggiungere tag alla regola di rilevamento.
-
Se i criteri IAM richiesti non sono ancora stati definiti, viene visualizzata una notifica in cui sono elencati i criteri per:
- Crea un gruppo dinamico
- Applicare i criteri al gruppo dinamico per consentire l'esecuzione dei task pianificati
Prendere nota dei criteri elencati e crearli.
-
Fare clic su Crea regola di rilevamento.
L'esecuzione della query è ora pianificata a intervalli regolari e le metriche risultanti vengono emesse al servizio di monitoraggio.
-
Nella pagina contenente l'elenco delle regole di rilevamento della ricerca pianificata, fare clic sul nome della ricerca pianificata. Nella pagina dei dettagli della ricerca pianificata, quindi fare clic su Visualizza in Explorer metriche per visualizzare le metriche nel servizio di monitoraggio.
Consenti agli utenti di eseguire tutte le operazioni sui task pianificati
Per creare task pianificati, impostare innanzitutto le autorizzazioni corrette creando i criteri IAM riportati di seguito.
-
Creare un gruppo dinamico per consentire ai task pianificati di inviare metriche al servizio di monitoraggio da un compartimento specifico:
ALL {resource.type='loganalyticsscheduledtask', resource.compartment.id='<compartment ocid>'}
In alternativa, per consentire la contabilizzazione delle metriche da tutti i compartimenti:
ALL {resource.type='loganalyticsscheduledtask'}
-
Creare criteri per consentire al gruppo dinamico di eseguire le operazioni dei task pianificati nella tenancy:
allow group <group_name> to use loganalytics-scheduled-task in tenancy allow dynamic-group <dynamic_group_name> to use metrics in tenancy allow dynamic-group <dynamic_group_name> to read management-saved-search in tenancy allow dynamic-group <dynamic_group_name> to {LOG_ANALYTICS_QUERY_VIEW} in tenancy allow dynamic-group <dynamic_group_name> to {LOG_ANALYTICS_QUERYJOB_WORK_REQUEST_READ} in tenancy allow dynamic-group <dynamic_group_name> to READ loganalytics-log-group in tenancy allow dynamic-group <dynamic_group_name> to {LOG_ANALYTICS_LOOKUP_READ} in tenancy allow dynamic-group <dynamic_group_name> to read compartments in tenancy
-
Alcune delle istruzioni dei criteri di cui sopra sono incluse nei modelli di criteri definiti da Oracle immediatamente disponibili. Si consiglia di prendere in considerazione l'utilizzo del modello per il caso d'uso. Vedere Modelli di criteri definiti da Oracle per casi d'uso comuni.
-
Per informazioni sui gruppi dinamici e sui criteri IAM, vedere Documentazione OCI: Gestione dei gruppi dinamici e Documentazione OCI: Gestione dei criteri.
-
Per i dettagli dei criteri, vedere Creazione di query delle metriche - Prerequisiti nella documentazione di Oracle Cloud Infrastructure.
-
Per il riferimento all'API dei task pianificati, consulta ScheduledTask Reference in Oracle Cloud Infrastructure API Documentation.
Visualizza tutti i task pianificati in un compartimento mediante l'API
Per visualizzare i task schedulati per una ricerca salvata specifica, è possibile visitare la pagina dei dettagli della ricerca salvata. Tuttavia, se si desidera elencare tutti i task pianificati in un compartimento specifico senza riferimento alle ricerche salvate per le quali sono stati creati i task pianificati, utilizzare l'API per eseguire una query per elencare i task pianificati. Vedere ListScheduledTasks.
Specificare i seguenti parametri nel comando GET
:
taskType=SAVED_SEARCH
compartmentId=<compartment_OCID>
limit=1000
sortOrder=DESC
sortBy=timeUpdated
Per eseguire il comando, è necessario:
- Spazio di nomi: lo spazio di nomi di Logging Analytics specificato durante la creazione dei task pianificati.
- OCID compartimento: l'OCID del compartimento su cui si desidera eseguire una query per la lista dei task pianificati creati al suo interno.
Monitorare i task pianificati della ricerca salvata
È possibile monitorare lo stato dei task schedulati della ricerca salvata tramite la metrica Stato esecuzione task schedulato. In caso di esecuzione di un task non riuscita o saltata a causa di un'anomalia dell'infrastruttura o di modifica di una risorsa o di una configurazione dipendente, la metrica fornisce i dettagli dell'errore che consente di correggerlo.
Per i passi per accedere alla metrica Stato esecuzione task pianificato, vedere Monitorare Logging Analytics utilizzando le metriche del servizio.
Ogni task schedulato della ricerca salvata ha il proprio intervallo, come specificato nella relativa pianificazione task. Una metrica viene emessa nella tenancy per ogni esecuzione task pianificata. Passare il cursore sui datapoint nel grafico per visualizzare ulteriori dettagli sul task. Per filtrare i dati delle metriche in base a una delle dimensioni Status
, DisplayName
o ResourceId
, attenersi alla procedura riportata di seguito.
-
Fare clic sul menu Opzioni nell'angolo superiore destro della metrica Stato esecuzione task pianificato e selezionare Visualizza query in Explorer metriche.
La metrica viene ora visualizzata in Metrics Explorer. Qui è possibile visualizzare il grafico in modo più dettagliato.
-
Fare clic su Modifica query e selezionare Nome dimensione e Valore dimensione per la metrica. È possibile filtrare i dati della metrica in base a
taskResult
il risultato dell'esecuzione del task pianificato,Status
dell'esecuzione del task,DisplayName
del task,queryExecTimeRange
o il relativoResourceId
.Nota
Per visualizzare grafici e dati tabulari da Metrics Explorer specificando un nome di dimensione e un valore di dimensione, evitare di utilizzare campi con parentesi o altri caratteri speciali nel nome. Se il campo selezionato per il nome dimensione contiene caratteri speciali, creare un campo virtuale utilizzando il comando
eval
oppure rinominare il campo esistente utilizzando il comandorename
in modo da rimuovere le parentesi o i caratteri speciali. Ad esempio, se il campo utilizzato per Nome dimensione èHost Name (Server)
, è possibile creare un campo virtualehostname
con| eval hostname=“Host Name (Server)”
.La dimensione
queryExecTimeRange
è utile per determinare il tempo impiegato per eseguire la query del task pianificato. I valori disponibili sono< 5s
,>= 5s and < 10s
,>= 10s and < 30s
e> 30s
. In genere, le query che richiedono più di 30 secondi per essere eseguite sono considerate costose in termini di tempo di esecuzione. Vedere Come rendere performanti le query.La dimensione
taskResult
può avere i valoriSucceeded
,Failed
ePaused
. La dimensioneStatus
fornisce ulteriori dettagli sutaskResult
. Ad esempio, se il valore ditaskResult
èPaused
, il valore diStatus
può esserePaused by User
.Fare clic su Aggiorna grafico per aggiornare la visualizzazione del grafico. Il grafico ora visualizzerà solo i datapoint per i quali è stato applicato il filtro.
È possibile passare alla vista Tabella dati per una rappresentazione in formato tabulare dei datapoint raccolti.
-
Modificare il nome della dimensione per visualizzare prospettive diverse nel grafico.
È possibile impostare gli avvisi per notificare lo stato tramite e-mail, SMS, Slack, PagerDuty, URL endpoint HTTPS o funzione. Vedere Creazione di avvisi per gli eventi rilevati.
Di seguito sono riportati i vari valori della dimensione status
riportati mediante questa metrica per valori taskResult
specifici.
Valore taskResult
|
Valore Status
|
descrizione; | Correzione consigliata |
---|---|---|---|
|
|
L'esecuzione del task è normale |
NA |
|
L'esecuzione del task pianificato è riuscita, ma la pubblicazione delle metriche nel servizio di monitoraggio è stata troncata a causa dei limiti di dati delle metriche. |
Assicurarsi che le metriche rimangano nei limiti specificati. Vedere OCI CLI Command Reference - Monitoring Service Metric Data. |
|
|
Quando l'esecuzione del task pianificato riesce, ma la query non ha restituito risultati. Pertanto, non vi sono dati delle metriche inviati al servizio di monitoraggio. |
Controllare la query di ricerca salvata. Inoltre, questo stato potrebbe non implicare un errore. Si suggerisce solo che l'evento per il quale è stata scritta la query non si sia verificato. Ad esempio, se la query deve contare il numero di errori nei log negli ultimi 5 minuti e se i log arrivati negli ultimi 5 minuti non contengono errori, viene visualizzato |
|
|
Risultati parziali a causa di query costose che richiedono più di due minuti per essere completate o a causa di un'anomalia dell'infrastruttura. |
Contattare il Supporto Oracle fornendo informazioni sullo stato. |
|
|
Risultati parziali a causa di query costose che richiedono più di due minuti per essere completate o a causa di un'anomalia dell'infrastruttura. |
Contattare il Supporto Oracle fornendo informazioni sullo stato. |
|
|
|
Esecuzione del task non riuscita a causa di un'anomalia dell'infrastruttura o di un errore recuperabile. |
Contattare il Supporto Oracle fornendo informazioni sullo stato. |
|
|
La stringa di query di ricerca salvata o i filtri di ambito non sono validi. |
Controllare se la ricerca salvata è stata modificata dopo la creazione del task schedulato e correggerla. |
|
La ricerca salvata viene eliminata o il criterio IAM che fornisce l'autorizzazione di lettura per la ricerca salvata è stato modificato. |
Assicurarsi che il criterio IAM sia stato ripristinato. |
|
|
La query di ricerca salvata non è valida per la generazione della metrica. |
Controllare se la ricerca salvata è stata modificata dopo la creazione del task schedulato e correggerla. |
|
|
Se il task pianificato riguarda la rimozione dei dati di log e il compartimento di rimozione viene eliminato o se il criterio IAM per la rimozione è stato modificato dopo la creazione del task pianificato, questo stato viene visualizzato. |
Controllare se il compartimento di rimozione viene eliminato e ripristinarlo. Assicurarsi che il criterio IAM sia stato ripristinato. |
|
|
Uno dei due motivi seguenti può attivare lo stato:
|
Se i dettagli della metrica sono incompleti o non validi, aggiornare i dettagli della metrica nella definizione del task pianificato. Se la colonna della metrica non è numerica o il valore della dimensione non è cardinale, aggiornare la ricerca salvata per produrre metrica e dimensione valide. |
|
|
Se il valore di |
Identificare l'azione utente che ha sospeso l'esecuzione del task pianificato ed eseguito il task pianificato. |
Fattori importanti per la creazione di task pianificati
Prendere nota dei seguenti fattori per la creazione di task pianificati:
-
Requisiti per la composizione delle interrogazioni:
Quando si compongono le query per creare task pianificati, assicurarsi di soddisfare i requisiti riportati di seguito.
- Nota delle limitazioni per le query delle regole di rilevamento:
-
Evitare di eseguire la ricerca con caratteri jolly nel campo Contenuto log originale nella query del task pianificato. Per ulteriori informazioni sulle ricerche con caratteri jolly, vedere Usa parole chiave, frasi e caratteri jolly.
-
Il comando
timestats
non può essere seguito dai comandieval
,extract
,jsonextract
,xmlextract
elookup
. -
Il comando
regex
non deve essere utilizzato in campi di grandi dimensioni comeMessage
per evitare di rendere le query costose per l'elaborazione.Il confronto
like
e i comandiextract
,jsonextract
exmlextract
non sono supportati in campi di grandi dimensioni comeMessage
.I campi di collegamento o i campi utilizzati nella clausola
BY
non possono essere utilizzati in campi di grandi dimensioni comeMessage
. -
The commands which are not supported in the queries for scheduled tasks are
cluster
,clustercompare
,clusterdetails
,clustersplit
,compare
,createview
,delta
,eventstats
,fieldsummary
,highlightgroups
,geostats
,linkdetails
,map
,nlp
andtimecompare
.
-
- Limiti massimi:
Il numero massimo di campi supportati per la clausola
by
è 3.Il numero massimo di campi supportati per il comando
timestats
è 3.Il numero massimo di funzioni di aggregazione supportate in una query di task pianificato è 1.
- Utilizzare i valori dei campi
link
come dimensioni per la contabilizzazione delle metriche:Selezionare fino a tre campi dimensione e un parametro numerico da pubblicare nel servizio di monitoraggio. Per indicare quali campi devono essere inviati al monitoraggio, le query devono terminare con:
... | link ... | fields -*, dim1, dim2, dim3, metric1
Per impostazione predefinita, il comando
link
contiene diverse colonne nell'output, ad esempio Ora di inizio, Ora di fine, Conteggio e così via. Utilizzare-*
nel comandofields
per rimuovere questi campi e specificare facoltativamente fino a tre campi dimensione e un campo metrica obbligatorio.È possibile disporre di più istruzioni
eval
dopo il comandostats
e di più funzionistats
per il calcolo dei risultati intermedi. Tuttavia, la query deve terminare confields -*, dim1, dim2, dim3, metric1
che indica le dimensioni e la metrica da contabilizzare. Utilizzare le linee guida riportate di seguito per le query delle regole di rilevamento.- Usare il comando 2
addfields
al massimo. - Utilizzare fino a 3 funzioni
stats
. - Le istruzioni
eval
sono necessarie per calcolare i risultati intermedi e finali.
Query di esempio:
'Log Source' = 'OCI Email Delivery' | link 'Entity' | addfields [ * | where deliveryEventType = r and bounceType = hard | stats count as 'hard bounces' ], [ * | where deliveryEventType = e and length(ipPoolName) > 0 | stats count as 'total sent messages' ] | eval 'Total Rate' = ('hard bounces' / 'total sent messages') * 100 | fields -*, 'Entity', 'Total Rate'
'Log Source' = 'My Network Logs' | stats sum(Success) as TotalSuccess, sum(Failure) as TotalFailure | eval SuccessRate = (TotalSuccess / (TotalSuccess + TotalFailure)) * 100 | fields -*, SuccessRate
- Usare il comando 2
- Nota delle limitazioni per le query delle regole di rilevamento:
-
Arrivo tardivo dei log:
Se i task pianificati vengono eseguiti prima dell'arrivo dei log, è possibile che i task pianificati non restituiscano i risultati come previsto. Per evitare la mancanza di tali log nelle attività schedulate a causa del loro arrivo in ritardo, la query deve tenerne conto utilizzando una rettifica dell'intervallo di tempo.
Ad esempio, se il task pianificato viene eseguito ogni 5 minuti per verificare il numero di errori di autenticazione e se tra la generazione dei log e il raggiungimento di Oracle Logging Analytics è previsto un ritardo di 3 minuti, il task pianificato non rileverà i log. Si consideri che l'attività pianificata viene eseguita ogni 5 minuti, ad esempio 01:00, 01:05, 01:10 e così via. Se il record di log L1 generato alle 01:04 raggiunge Oracle Logging Analytics alle 01:07. L1 non è stato rilevato nel task pianificato eseguito alle 1:05 perché il log non è arrivato in Oracle Logging Analytics in questo momento. Durante la successiva esecuzione alle 01:10, la query cerca i log con indicatori orari compresi tra le 01:05 e le 01:10. Anche in questo ciclo, L1 non viene rilevato perché ha un indicatore orario di 01:04. Se i log arrivano in ritardo, la query seguente potrebbe non visualizzare tutti i record dei log:
Label = 'Authentication Error' | stats count as logrecords by 'Log Source'
Per determinare il ritardo nell'arrivo dei log in Oracle Logging Analytics, calcolare la differenza tra l'indicatore orario indicato nel record di log e l'ora di pubblicazione del processore di log. È possibile utilizzare la seguente query di esempio per verificare se esiste un ritardo:
Label = 'Authentication Error' and 'Log Processor Posting Time (OMC INT)' != null | fields 'Agent Collection Time (OMC INT)', 'Data Services Load Time', 'Process Time', 'Log Processor Posting Time (OMC INT)'
La query seguente utilizza la funzione
dateRelative
per regolare il ritardo di 3 minuti in un task eseguito a un intervallo di 5 minuti:Label = 'Authentication Error' and Time between dateRelative(8minute, minute) and dateRelative(3minute, minute) | stats count as logrecords by 'Log Source'
-
Altri fattori:
-
Per capire come le query sono integrate nel servizio di monitoraggio, consulta la sezione relativa alla creazione di query sulle metriche nella documentazione di Oracle Cloud Infrastructure.
-
Prendere nota delle informazioni sui limiti per la pubblicazione dei dati delle metriche nel servizio di monitoraggio. I limiti corrispondono alle metriche per un task pianificato. Consulta
PostMetricData API
nella Documentazione di Oracle Cloud Infrastructure.Quando la ricerca salvata può generare più di 50 valori unici per campo, i risultati parziali vengono contabilizzati a causa dei limiti imposti dal servizio di monitoraggio. In questi casi, per visualizzare i risultati top o bottom 50, utilizzare il comando sort.
-
Query di esempio per task pianificati
argomenti:
Query di esempio per la visualizzazione delle metriche
-
Si consideri un esempio in cui si desidera conoscere il numero di errori di autenticazione in un'esecuzione pianificata ogni 5 minuti:
Label = 'Authentication Error' | stats count as 'Number of Authentication Errors'
Quando si seleziona la visualizzazione della tabella di riepilogo in Log Explorer, viene visualizzato il seguente output:
Ogni volta che il task pianificato esegue una metrica come quella precedente, la stessa verrà pubblicata nel servizio di monitoraggio.
Da Metrics Explorer la metrica pubblicata sopra può essere visualizzata come segue:
Fare clic su Mostra tabella dati per visualizzare la metrica in formato tabulare:
-
Se si desidera conoscere l'analisi degli errori di autenticazione in ogni host:
Label = 'Authentication Error' | stats count as 'Number of Authentication Errors' by 'Host IP Address (Client)'
Utilizzare la visualizzazione di riepilogo per visualizzare un'anteprima dell'aspetto di un output di metrica per la query.
Nella pagina Explorer metriche, la stessa metrica per grafico IP host è simile alla seguente:
Per visualizzare il numero per IP host, specificare il nome della dimensione metrica come Host_IP_Address_Client e deselezionare la casella di controllo Aggrega flussi di metriche.
Come rendere performanti le tue query
Alcune query portano a tempi di esecuzione elevati o in alcuni casi a timeout e alla fine portano a esecuzioni ritardate dei propri task. In questi casi, si consiglia di creare campi estesi (EFD) o etichette e di utilizzarli nei filtri nelle query pianificate per rendere le query meno costose.
Ad esempio, se si desidera pubblicare il numero di timeout di connessione nei log degli alert del database ogni 5 minuti, la query seguente è uno dei modi per eseguirla:
'Log Source' = 'Database Alert Logs' and 'TNS-12535' | stats count as 'Number of Timeouts'
La query precedente cerca la stringa TNS-12535
in Contenuto log originale. Tuttavia, questo non è il modo più efficiente per cercare i timeout, soprattutto quando l'esecuzione del task è pianificata ogni 5 minuti con la scansione di milioni di record.
Utilizzare invece il campo in cui viene estratto tale ID errore e comporre la query come mostrato di seguito.
'Log Source' = 'Database Alert Logs' and 'Error ID' = 'TNS-12535' | stats count as 'Number of Timeouts'
In alternativa, è possibile filtrare utilizzando l'etichetta:
'Log Source' = 'Database Alert Logs' and Label = Timeout | stats count as 'Number of Timeouts'
Le origini log definite da Oracle contengono molti EFD ed etichette definiti. Per i log personalizzati, si consiglia di definire le proprie etichette e gli EFD e di utilizzarli nelle query pianificate invece di eseguire ricerche in Contenuto log originale. Vedere Creazione di un'etichetta e Utilizzo di campi estesi nelle origini.