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:

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.

  1. 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.

  2. Fare clic su Regola di rilevamento ricerca pianificata.

  3. Specificare un nome regola per il task pianificato.

  4. 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.

  5. 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 o Custom.

    È inoltre possibile includere Conteggio ripetizioni nella specifica di frequenza per il numero di volte in cui la query deve essere eseguita.

  6. In Selezionare un servizio di destinazione da configurare:

    1. 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.

    2. Selezionare Compartimento metrica, il compartimento in cui verrà creata la metrica. Per impostazione predefinita, Oracle Logging Analytics seleziona un compartimento.

    3. 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 con oracle_ e oci_. Sono prefissi riservati. Vedere Pubblicazione di metriche personalizzate.
    4. 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.

    5. 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>.

  7. Facoltativamente, espandere la sezione Mostra opzioni avanzate e aggiungere tag alla regola di rilevamento.

  8. 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.

  9. 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.

  10. 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.

  1. 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'}
  2. 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

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.

  1. 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.

  2. 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 relativo ResourceId.

    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 comando rename 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 virtuale hostname 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 valori Succeeded, Failed e Paused. La dimensione Status fornisce ulteriori dettagli su taskResult. Ad esempio, se il valore di taskResult è Paused, il valore di Status può essere Paused 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.

  3. 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

Succeeded

Succeeded

L'esecuzione del task è normale

NA

SucceededPostingDataTruncated

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.

SucceededNoDataFound

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 SucceededNoDataFound.

SucceededPartialResults

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.

PartialResultsNoDataFound

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.

Failed

Skipped

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.

Paused

InvalidManagementSavedSearch

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.

NotAuthorizedOrNotFoundManagementSavedSearch

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.

InvalidQuery

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.

NotAuthorizedOrNotFoundPurgeResource

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.

MetricExtractionNotValid

Uno dei due motivi seguenti può attivare lo stato:

  • I dettagli della metrica specificati per il task pianificato sono incompleti o non validi.
  • Il set di risultati della metrica non è valido, ovvero la colonna della metrica non è numerica o il valore della dimensione non è cardinale.

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.

PausedByUser

Se il valore di taskResult è Paused, il valore di Status non indica l'esecuzione del task pianificato. Indica l'azione dell'utente tramite la console o l'API che ha sospeso il task pianificato.

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 comandi eval, extract, jsonextract, xmlextract e lookup.

      • Il comando regex non deve essere utilizzato in campi di grandi dimensioni come Message per evitare di rendere le query costose per l'elaborazione.

        Il confronto like e i comandi extract, jsonextract e xmlextract non sono supportati in campi di grandi dimensioni come Message.

        I campi di collegamento o i campi utilizzati nella clausola BY non possono essere utilizzati in campi di grandi dimensioni come Message.

      • 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 and timecompare.

    • 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 comando fields 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 comando stats e di più funzioni stats per il calcolo dei risultati intermedi. Tuttavia, la query deve terminare con fields -*, 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
  • 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

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:


    Output Log Explorer per la query

    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:


    Output della metrica per il task pianificato

    Fare clic su Mostra tabella dati per visualizzare la metrica in formato tabulare:


    Formato tabulare dell'output della metrica per il task pianificato

  • 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.


    Output della query nella visualizzazione di riepilogo

    Nella pagina Explorer metriche, la stessa metrica per grafico IP host è simile alla seguente:


    Output della metrica per IP host

    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.


    Finestra di dialogo per selezionare il nome della dimensione metrica

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.