Ricerca query

Oracle Log Analytics ti consente di filtrare e analizzare grandi quantità di dati di log nei tuoi database aziendali, attraverso un unico display unificato e personalizzabile che è facile da leggere e navigare. Utilizzare la funzione di ricerca incorporata per filtrare tutti i dati di log disponibili e restituire voci di log specifiche.

Oracle Log Analytics Search consente di eseguire il drill-down di voci di log specifiche, consentendo analisi e monitoraggio mirati in tutta l'azienda. Utilizzare il linguaggio di query Oracle Log Analytics per formulare le query di ricerca, che recupereranno le voci di log specifiche del problema che si sta risolvendo.

Il linguaggio di query per l'analisi dei log consente di specificare l'azione da eseguire sui risultati della ricerca. I comandi possono essere comandi di ricerca o comandi statistici. I comandi di ricerca sono comandi che filtrano ulteriormente le voci di log disponibili. I comandi statistici eseguono operazioni statistiche sui risultati della ricerca. Per l'elenco completo dei comandi, della relativa sintassi e degli esempi da utilizzare, vedere Informazioni di riferimento sui comandi del linguaggio di query.

Il linguaggio di query Oracle Log Analytics consente di:

  • Filtrare ed esplorare tutti i dati di log disponibili

  • Esegui analisi delle cause principali

  • Esegui analisi statistica su entità selezionate

  • Generare report

  • Salva query di ricerca per uso futuro

  • Recupera ricerche salvate per creare dashboard

È possibile creare la query di ricerca trascinando gli elementi dal pannello Campo e rilasciandoli nelle sezioni appropriate della colonna Visualizza oppure immettendo direttamente la query nel campo Cerca. Per ulteriori informazioni sull'uso dell'interfaccia utente per formulare le query, vedere Formulazione delle query mediante l'interfaccia utente di Log Analytics.

Per scrivere query eseguibili utilizzando il comando regex, fare riferimento alla sintassi RE2J all'indirizzo Java Implementation of RE2.

Usa procedura guidata Guida query

Log Analytics ora offre una guida attiva per imparare rapidamente a scrivere query e fornisce anche un vasto set di query di esempio per l'analisi avanzata.

Fare clic sull'icona della Guida Icona Guida query accanto alla barra delle query in Esplora log per aprire la Guida guidata per le query. In pochi minuti, è possibile comprendere il formato e la sintassi delle query che è possibile comporre. Eseguire le query di esempio a partire dalla ricerca di base all'analisi avanzata e familiarizzare con il riferimento alla query. La procedura guidata fornisce alcuni suggerimenti e collegamenti per rendere efficiente la ricerca. È inoltre possibile visualizzare il risultato dell'esecuzione di alcuni comandi comuni per i casi d'uso standard.

Cerca nei log con parole chiave e frasi

I comandi consentono di recuperare i dati di log e di eseguire operazioni di manipolazione su tali dati. Il primo (e implicito) comando di una query è il comando di ricerca. Una ricerca è una serie di comandi delimitati da un carattere pipe (|). La prima stringa spaziata in bianco dopo il carattere pipe identifica il comando da utilizzare. Il carattere pipe indica che i risultati del comando precedente devono essere utilizzati come input per il comando successivo.

Ad esempio, per cercare tutti i messaggi di errore del database, immettere l'espressione logica seguente nella barra Cerca di Oracle Log Analytics:

Severity = 'error' AND 'Entity Type' = 'Database Instance'

Includendo le parole tra virgolette e includendole nella stringa di query come frase (‘Database Instance’, ad esempio), vengono restituiti solo i log contenenti la frase ‘Database Instance’. Inoltre, le ricerche con parole chiave in cui la sottostringa potrebbe essere interpretata come una direttiva separata dovrebbero essere specifiche tra virgolette. Ad esempio, per cercare la stringa and, è necessario immettere la stringa tra virgolette singole (‘and’) per evitare che il sistema utilizzi il suo significato booleano.

Per ulteriori esempi e dettagli sull'uso del linguaggio di query per la ricerca nei log, vedere Scrivere query di ricerca.

Elenca le ricerche recenti

Oracle Log Analytics consente di selezionare ed eseguire una ricerca utilizzata di recente. Quando si fa clic sul campo Cerca o si immette del testo nel campo Cerca, Oracle Log Analytics visualizza un elenco di ricerche utilizzate di recente. Ciò consente di accedere rapidamente ai comandi di ricerca utilizzati di recente. È possibile selezionare uno qualsiasi dei comandi elencati e fare clic su Esegui per eseguire il comando di ricerca selezionato.

Nota

L'elenco utilizzato di recente è disponibile per sessione. Pertanto, se si esce da Oracle Log Analytics e quindi ci si connette di nuovo, l'elenco della sessione precedente non verrà visualizzato. Viene creato un nuovo elenco di ricerche recenti per la sessione.

Utilizza la funzione di suggerimento automatico

Quando si immette una query nel campo Cerca, la funzione di suggerimento automatico di Oracle Log Analytics suggerisce automaticamente i termini che è possibile utilizzare nella query. In Oracle Log Analytics viene visualizzato un elenco di suggerimenti basato sul testo immesso nel campo Cerca. Ad esempio, se è stato immesso il nome di un campo o di un'azione di ricerca, la funzione di suggerimento automatico visualizza i valori possibili solo per tale campo o per l'elenco delle azioni disponibili.

Scrivi query di ricerca

È possibile specificare entità, parole chiave, frasi o caratteri jolly, operatori di confronto, espressioni booleane, funzioni e tempo per creare la query di ricerca di Oracle Log Analytics.

Per utilizzare la funzione di ricerca in Oracle Log Analytics, è necessario formulare una query di ricerca e immetterla nel campo Cerca.

Usa interfaccia utente Log Analytics

L'interfaccia utente di Oracle Log Analytics consente di formulare la query di ricerca.

È possibile utilizzare i seguenti elementi dell'interfaccia utente per formulare la query di ricerca:

  • Barra di ricerca: la query di ricerca viene visualizzata qui. È possibile modificare direttamente il testo in questo campo per perfezionare ulteriormente i risultati della ricerca.

    La barra di ricerca si ingrandisce o si riduce in base al numero di righe aggiunte alla query. Può avere un massimo di 21 linee e un minimo di 1 linea. Di seguito sono riportati alcuni dei collegamenti personalizzati disponibili.

    • Ctrl + i: indica ogni riga di testo presente nell'editor. Si noti che il carattere maiuscolo I apre il debugger.
    • Ctrl + Enter: esegue la query visualizzata nell'editor
    • Ctrl + Space: visualizza la lista di opzioni completate automaticamente in base alla posizione di cursore
    • Ctrl + Z: annulla l'ultima modifica
    • Ctrl + Y: ripete l'ultima modifica
    • Ctrl + D: elimina la riga corrente

    Nota: Non utilizzare la chiave SHIFT se non specificato.

    Posizionare il cursore tra le parentesi aperte o di chiusura per visualizzare l'elemento corrispondente evidenziato. Gli elementi che possono essere evidenziati sono ( ) e [ ].

    La barra di ricerca supporta due temi diversi, colore e scala di grigi. È possibile modificare i temi in modo dinamico modificando l'opzione nella finestra popup della Guida.

  • Campo: il pannello Campo è suddiviso nelle seguenti sezioni:

    • Gli attributi Pinned consentono di filtrare i dati di log in base a:

      • Origini di log, ad esempio log di database, log di Oracle WebLogic Server e così via.

      • Entità di log, ovvero i nomi effettivi dei file di log.

      • Etichette, ovvero tag aggiunte alle voci di log quando le voci di log corrispondono a condizioni definite specifiche.

      • Caricare i nomi dei dati di log caricati su richiesta.

      Per impostazione predefinita, le entità e i dettagli della raccolta sono disponibili nel bucket bloccato del pannello Campi per il filtro. È possibile aggiungere campi aggiuntivi al bucket bloccato a seconda dell'uso. Una volta fissati, i campi vengono spostati nel bucket appuntato. È possibile sbloccare qualsiasi campo e rimuoverlo dal bucket bloccato e spostarlo di nuovo nel bucket Interessante o Altro.

    • In base alla ricerca e alle query, Oracle Log Analytics aggiunge automaticamente i campi al bucket Interessante per un riferimento rapido. È possibile appuntare un campo disponibile in Periodo fisso interessante. Il campo appuntato viene quindi spostato nel secchio appuntato.

    • È possibile fissare in memoria qualsiasi campo nel bucket Altro e spostarlo nel bucket bloccato. Se si utilizza un campo del bucket Altro nella ricerca o nella query, questo viene spostato nel bucket Interessante.

      Le opzioni selezionate vengono aggiunte automaticamente alla query nella barra Cerca.

  • Visualizza: in questo riquadro è possibile selezionare la modalità di visualizzazione dei risultati della ricerca. Nel campo Raggruppa per è possibile decidere le metriche in base alle quali raggruppare i risultati.

  • Salva: utilizzare questo pulsante per salvare la query di ricerca attualmente presente nel campo Cerca, da eseguire in un secondo momento.

  • Apri: utilizzare questo pulsante per visualizzare le query di ricerca salvate in precedenza. È possibile eseguire queste query e ottenere i risultati correnti oppure utilizzare queste query per creare dashboard.

  • Nuovo: utilizzare questo pulsante per avviare una nuova query di ricerca.

  • Esporta: utilizzare questo pulsante per esportare il risultato della query di ricerca corrente in un file in formato Comma-seperated Values(CSV) o JavaScript Object Notation(JSON).

  • Esegui: utilizzare questo pulsante per eseguire la query attualmente presente nel campo Cerca.

  • Selettore tempo: utilizzare il selettore tempo per specificare il periodo di tempo.

  • Riquadro di visualizzazione: i risultati della query di ricerca vengono visualizzati in questo riquadro. Le informazioni filtrate in questo riquadro vengono caricate quando viene eseguita la query nel campo Cerca. Facendo clic su un'area qualsiasi del grafico nel riquadro di visualizzazione, è possibile espandere la query di ricerca e aggiornarla.

Usa parole chiave, frasi e caratteri jolly

Le query stringa possono includere parole chiave e frasi. Una parola chiave è una parola singola (ad esempio, database), mentre una frase si riferisce a più parole, racchiuse tra virgolette singole (‘ ‘) o doppie (“ “) (ad esempio, ‘database connection’). Se si specifica una parola chiave o una frase nella query, tutte le voci di log che contengono la parola chiave o la frase specificata vengono restituite dopo l'esecuzione della query.

La lingua di ricerca di Oracle Log Analytics supporta anche il mapping di pattern speciali. In altre parole, è possibile utilizzare caratteri jolly, ad esempio asterisco (*), punto interrogativo (?) e percentuale (%), per completare le parole chiave.

La tabella seguente elenca i caratteri jolly supportati e fornisce una breve descrizione di ciascuno di essi.

Carattere jolly Descrizione

?

Utilizzare questo carattere per abbinare esattamente un carattere delle possibilità alla parola chiave. Ad esempio, se si immette host?, la parola chiave host1 viene considerata corrispondente, mentre host.foo.bar non lo è.

* o %

Utilizzare uno di questi caratteri per associare alla parola chiave 0 o più caratteri delle possibilità. Ad esempio, se si immette host* o host%, host1 e host.foo.bar vengono considerati corrispondenti alla parola chiave. Analogamente, se si immette %host%, ahostb e myhost vengono considerati corrispondenti alla parola chiave specificata.

È possibile specificare più parole chiave. Ad esempio, database e connection. Vengono restituiti i log contenenti le parole database e connection (ma non necessariamente insieme). Tuttavia, queste parole non devono necessariamente verificarsi consecutivamente. Tuttavia, racchiudendo le parole tra virgolette e includendole nella stringa di query come una frase (‘database connection’, ad esempio), vengono restituiti solo i log contenenti la frase ‘database connection’. Per informazioni sull'uso di più parole chiave, vedere Usa espressioni booleane.

Quando si specifica una parola chiave o una frase, tenere presente quanto riportato di seguito.

  • Per le parole chiave e le stringhe di frase non viene fatta distinzione tra maiuscole e minuscole.

  • Le parole chiave non racchiuse tra virgolette devono contenere solo caratteri alfanumerici, caratteri di sottolineatura (_) e caratteri jolly (*, % e ?).

  • Le ricerche con parole chiave in cui la sottostringa potrebbe essere interpretata come una direttiva separata dovrebbero essere specifiche tra virgolette. Ad esempio, per cercare la stringa and, è necessario immetterla tra virgolette singole (‘and’) per evitare che il sistema riprenda il suo significato booleano.

Nota

Per utilizzare i caratteri jolly con il campo message, è necessario utilizzare anche LIKE o LIKE IN. Di seguito sono riportati alcuni esempi di utilizzo di caratteri jolly con message.
ORA-* AND message LIKE 'connection* error*'
ORA-* AND message LIKE IN ('tablesp*','connection* error*')

Usa operatori di confronto

Gli operatori di confronto sono condizioni specificate per stabilire una relazione tra un campo e il relativo valore. I campi senza valori sono considerati nulli.

La tabella seguente elenca gli operatori di confronto supportati e fornisce una breve descrizione di ciascuno di essi.

Operatore di confronto Descrizione
< Se si utilizza questo operatore nella query, vengono restituite tutte le voci di log con un valore, per il campo corrispondente, inferiore al valore specificato.
<= Se si utilizza questo operatore nella query, vengono restituite tutte le voci di log con un valore, per il campo corrispondente, minore o uguale al valore specificato.
> Se si utilizza questo operatore nella query, vengono restituite tutte le voci di log con un valore maggiore di per il campo corrispondente.
>= Se si utilizza questo operatore nella query, vengono restituite tutte le voci di log con un valore maggiore o uguale a per il campo corrispondente.
= Se si specifica questo operatore nella query, vengono restituite tutte le voci di log con un valore, per il campo corrispondente, pari a uguale a.
!= Se si specifica questo operatore nella query, vengono restituite tutte le voci di log con un valore diverso da per il campo corrispondente.

Utilizzare questi operatori per trovare i log con campi con valori specifici. Ad esempio, specificare Severity=’ERROR’ per cercare nei log disponibili in cui il valore del campo Severity è ERROR. Analogamente, Severity!=NULL restituisce tutti i log in cui il valore del campo Severity non è nullo (in altre parole, dove è stata specificata la severità).

Nota

Se il valore non è numerico o NULL, il valore a destra dell'operatore di confronto deve essere specificato tra virgolette.

Usa espressioni booleane

La funzione Oracle Log Analytics Search dispone delle funzionalità LIKE e REGEX, come da convenzioni standard. Le Espressioni booleane possono avere un valore true o false.

Nella tabella seguente sono elencate le espressioni booleane supportate, insieme a una breve descrizione di ciascuna.

Espressione booleana Descrizione
AND Utilizzare questa espressione per visualizzare solo i log che contengono entrambi i parametri specificati.
NOT IN o IN Utilizzare questa espressione per trovare i dati che si trovano in un subset specificato di dati disponibili. Ad esempio, ‘Entity Type’ IN (‘Database Instance’,‘Automatic Storage Management’,’Listener’,’Cluster’) prenderà in considerazione solo i log contenenti ‘Database Instance’, ‘Automatic Storage’, Listener o Cluster, quindi identificherà i log contenenti ‘Entity Type’. Tuttavia, quando si utilizza NOT IN, vengono restituite le voci di log con la parola chiave o la frase specificata, escluse le voci specificate. Ad esempio, ‘Entity Type’ NOT IN (‘Database Instance’,’Automatic Storage Management’,’Listener’,’Cluster’) prima filtra le voci di log con ‘Database Instance’, ‘Automatic Storage Management’, Listener e Cluster, quindi restituisce le voci di log in cui il valore di ‘Target Type’ non è uno dei valori specificati.

La parola riservata NULL è supportata con questo operatore booleano.

NOT LIKE o LIKE Utilizzare questa espressione per trovare dati che corrispondono o non corrispondono al pattern di caratteri specificato. Il pattern di caratteri è una stringa che può contenere uno o più caratteri jolly.
NOT LIKE IN o LIKE IN Analogamente a [NOT] IN, questa espressione consente di utilizzare un'espressione abbreviata per esprimere più clausole LIKE insieme.
OR Utilizzare questa opzione per visualizzare i log che contengono uno dei parametri specificati.

Il linguaggio Oracle Log Analytics Search supporta la nidificazione di espressioni booleane all'interno di altre espressioni booleane. Ad esempio, si consideri la seguente query:

fatal ('order' OR host LIKE '*.oracle.com')

L'esecuzione di questa query restituisce tutti i log contenenti fatal e contenenti la parola chiave order oppure originati da un host il cui nome termina con .oracle.com.

Formulare le query utilizzando l'interfaccia utente di Log Analytics

È possibile utilizzare l'interfaccia utente di Oracle Log Analytics per formulare la query di ricerca.

Per impostazione predefinita, la query * | stats count by ‘log source’ è specificata nel campo Cerca.

Per visualizzare i dati per entità specifiche, effettuare le operazioni riportate di seguito.

  1. Aprire il menu di navigazione e fare clic su Observability & Management. In Log Analytics, fare clic su Log Explorer.

  2. Sotto l'intestazione Entità nel pannello Campi, selezionare Entità o Tipo di entità, a seconda di come si desidera visualizzare le entità. Raggruppa i database registrati in base alla selezione effettuata. Ad esempio, se si seleziona Tipo di entità, le entità selezionate vengono raggruppate in base ai relativi tipi.

  3. Selezionare l'entità o il tipo di entità per il quale si desidera visualizzare i dati.

  4. Fare clic su Sottometti.

    Il pulsante cancella viene visualizzato accanto all'entità selezionata e i dati vengono visualizzati nel riquadro di visualizzazione.

Per visualizzare i dati per un campo specifico, effettuare le operazioni riportate di seguito.

  1. Selezionare il tipo di campo dal pannello Campi e sotto gli attributi Fissato, Interesse o Altro bucket.

  2. Selezionare Etichetta, Entità di log, Origine log, Proprietario o Nome caricamento per i quali si desidera visualizzare i dati. È possibile selezionare più di una etichetta, entità di log, origine log, proprietario o nome caricamento.

  3. Fare clic su Sottometti.

    I dati per il campo vengono caricati nel riquadro di visualizzazione.

Specificare l'intervallo di tempo nella query

In genere, l'intervallo di tempo selezionato in Esplora log non viene incluso nella stringa di query. È possibile specificare l'intervallo di tempo nella query utilizzando il modificatore ora assoluta o ora relativa nel comando search.

Nota

In caso di ricerca salvata, l'intervallo di tempo selezionato in Esplora log durante la creazione della ricerca salvata viene memorizzato come uno dei componenti Ricerca salvata. Quando si utilizza la ricerca salvata, è possibile modificare l'ora utilizzando il selettore dell'intervallo di tempo in Esplora log.

D'altra parte, quando l'intervallo di tempo è specificato in una query, l'intervallo di tempo selezionato in Log Explorer viene ignorato. L'intervallo di tempo incluso nella query viene utilizzato per l'analisi del log. Quando si salva questa query come ricerca salvata, l'intervallo di tempo specificato nella query viene considerato per i task di ricerca salvata e non per l'ora specificata in Esplora log.

Alcuni esempi in cui è possibile specificare un intervallo di tempo nella query:

  • Restituisce tutti i log degli errori ORA-600 trovati nelle ultime 24 ore:

    Message like 'ORA-600%' and time > dateRelative(24h)
  • Restituisce il conteggio di log per la destinazione host myHost negli ultimi 90 giorni:

    'Host Name (Server)' = myHost and Time > dateRelative(90day) | stats count as 'Num Host Logs'

Funzioni basate sul tempo che possono essere utilizzate con il comando search

Le seguenti funzioni basate sul tempo possono essere utilizzate solo con il comando search:

  • toDate: ora assoluta, ad esempio 2014-07-15T16:24:51.000Z o '2014-07-12', 'yyyy-MM-dd'.

    Sintassi per toDate: toDate(<time>).

  • dateRelative: crea una data relativa alla data corrente, ad esempio 12h o 2d, day.

    Sintassi per dateRelative: dateRelative(<timespan>, <rounding interval>) dove l'arrotondamento si basa sull'ora UTC.

  • dateadd: aggiunge le unità di tempo alla data specificata, ad esempio aggiungere Day, 2 a toDate('2024-05-12', 'yyyy-MM-dd')

    Sintassi per dateadd: dateadd(<date>, <unit>, <amount>).

  • dateset: modifica una data in base alle unità di tempo. Ad esempio, toDate('2015-08-12', 'yyyy-MM-dd') è stato modificato con year, 2014, month, 7

    Sintassi per dateset: dateset(<date>, <unit>, <value> [, <unit>,<value>]).

  • now: data e ora correnti.

    Sintassi per now: now().

I criteri temporali possono essere espressi utilizzando gli operatori di confronto =, !=, <, <=, >, >= e l'operatore logico and.

Unità di tempo supportate

  • All Time

    Esempio JSON equivalente: "timeFilter": { "type" : "relative", "timeUnit" : "allTime" }

  • Secondo: s, sec, sec, secondo, secondi

  • Minuto: m, min, min, minuto, minuti

    Esempio: Last 60 minutes

    Esempio JSON equivalente: "timeFilter": { "type" : "relative", "duration" : "60", "timeUnit" : "minutes" }

  • Ora: h, hr, ore, ora, ore

  • Giorno: d, giorno, giorni

  • Settimana: settimana, settimane

  • Mese: mon, mese, mesi

  • Anno: anno, anno, anno, anni

Un esempio per la data assoluta in formato JSON è "timeFilter": { "type" : "absolute", "startTime" : "2015-04-26T08:00:00.000Z", "endTime" : "2015-04-27T08:00:00.000Z" }.

Esempi di intervallo di tempo nelle query

La query seguente cerca tutti gli elementi compresi tra 2 date assolute specificate nel formato standard ISO:

time between '2014-07-15T16:24:51.000Z' and '2014-07-17T18:14:16.000Z'

Vedere ISO 8601: DATA AND TIME FORMAT.

La seguente query cerca tutti gli elementi in base a 2 date assolute che non sono nel formato standard ISO:

time between toDate('2014-07-12', 'yyyy-MM-dd') and toDate('2014-07-15', 'yyyy-MM-dd')

La query seguente cerca tutto tranne le ultime 12 ore (* sul lato sinistro dell'espressione between rappresenta nuova data(0), * a destra è ora):

time between * AND dateRelative(12h)

La seguente query cerca tutto nelle ultime 12 ore:

time > dateRelative(12h)

La query seguente cerca tutti gli elementi degli ultimi 30 minuti arrotondati per iniziare dall'inizio dell'ora:

time > dateRelative(30min, hour)

La seguente interrogazione cerca i record con data precedente al 12 luglio 2014:

time < dateAdd(toDate('2014-07-22', 'yyyy-MM-dd'), day, -10)

L'interrogazione seguente cerca i record con data successiva al 10 giugno 2010:

time > dateSet(toDate('2015-08-10', 'yyyy-MM-dd'), year, 2010, month, 6)

La query riportata di seguito consente di cercare i record con la data dell'ultimo login precedente all'ora corrente.

'Upload Name' = idcs_dev8_dormant_upload and 'Last Login Date' < now()

La query seguente esegue la ricerca nei dati delle ultime 24 ore:

time between daterelative(1d) and now()

La query seguente esegue la ricerca tra un indicatore orario assoluto e ora:

time between '2015-06-15T00:00:00.000Z' and now()

Scrivi query secondarie

Le subquery consentono alla query figlio di fornire un filtro dinamico alle query padre. Le subquery vengono valutate per prime e il risultato viene quindi utilizzato nella query padre.

  • È possibile nidificare le subquery l'una all'altra, nonché una particolare query con più subquery allo stesso livello.
  • Per impostazione predefinita, le subquery ereditano l'intervallo di tempo globale, ma è possibile sostituirlo utilizzando la sintassi time between T1 and T2, se necessario.
  • Le subquery sono limitate per restituire solo le prime 2000 corrispondenze come input al relativo padre. Altri risultati vengono troncati.
  • Hanno un timeout massimo di 30 secondi per il completamento.
  • Tutti i campi restituiti da una subquery devono corrispondere ai campi della query padre per nome. In caso contrario, si verificherà un errore.
  • È possibile utilizzare le subquery solo all'interno di un comando di ricerca.
  • È possibile utilizzare tutti i comandi all'interno di una subquery ad eccezione di cluster, clustersplit, clustercompare, fieldsummary, delete, classify, highlight e highlightrows.

Esempi:

  • Eseguire il grafico del traffico dalla lista di esclusione IP nel tempo:
    [searchlookup table=ip_blacklist | distinct ip | rename ip as 'host address'] | timestats count
  • Elencare i prodotti più acquistati per i primi utenti di un sito di e-commerce:
    'Log Source'='WLS Access Logs' status=200 action=purchase ['Log Source'='WLS Access Logs' status=200 action=purchase | stats count by 'Host (Client Address)' | top limit=1 'Host(Client Address)' | fields -*, 'Host (Client Address)'] | lookup table=products select 'product name' using productid | stats count, distinctcount(productId), unique('product name') by 'Host (Client Address)'
  • Trova i primi 4 ID processo del sistema operativo con la somma più alta:
    [ *|stats sum('OS Process ID') as OSprocessidSum by 'OS Process ID' | top 4 OSprocessidSum | fields -OSprocessidSum ] | stats count by 'OS Process ID', 'Log Source', 'Host Name(Server)'
  • Visualizzare tutti i log della destinazione con i log di severità più irreversibili:
    * and [ Severity = fatal | stats count by Target | top limit = 1 Count | fields -Count]

Funzioni di ricerca

Nelle query di ricerca è possibile utilizzare le funzioni riportate di seguito.

Funzione Descrizione Esempio

md5(string)

Cerca il valore codificato md5

md5("hash my input")

sha1(string)

Cerca il valore codificato sha1

sha1("hash my input")

sha256(string)

Cerca il valore codificato sha256

sha256("hash my input")

sha512(string)

Cerca il valore codificato sha512

sha512("hash my input")

encode64(string)

Cerca il valore codificato Base64

encode64("my input")

decode64(string)

Cerca il valore decodificato Base64

decode64("encoded input")

anyOf(condition1, condition2, ..., conditionN)

Nota: È equivalente a (condition1 OPPURE condition2 OPPURE ... conditionN)

Nota: questa opzione può essere utilizzata anche in eval/where

anyof(ERROR, WARNING, FATAL) - Cercare una delle parole seguenti

anyof(Severity = ERROR, ERROR)

allOf(condition1, condition2, ..., conditionN)

Nota: È equivalente a (condition1 AND condition2 AND ... conditionN)

Nota: questa opzione può essere utilizzata anche in eval/where

allof(ERROR, WARNING, FATAL) - Cercare tutte e tre le parole

allof(Severity = ERROR, ERROR)

anyFields(wildCardExpression) = value

anyFields(wildCardExpression) != value

Nota: È equivalente a (field1 = valore OR field2 = valore OR ...)

Nota: questa opzione può essere utilizzata anche in eval/where

anyFields('Project*) != null

Converte in ('ID progetto' != null o 'Nome progetto' != null o 'Descrizione progetto' != null)

allFields(wildCardExpression) = value

allFields(wildCardExpression) != value

Nota: è equivalente a (field1 = valore AND field2 = valore OR ...)

Nota: questa opzione può essere utilizzata anche in eval/where

allFields('Project*) != null

Converte in ('ID progetto' != null e 'Nome progetto' != null e 'Descrizione progetto' != null)

Altri esempi per anyof() e allof():

  • Corrisponde ai log che contengono una qualsiasi di queste parole adm, logoff o user:

    anyof(adm, logoff, user)
  • Corrisponde ai log che contengono tutte queste parole adm, logoff o user:

    allof(adm, logoff, user)
  • Corrisponde ai log che NON hanno una delle parole oracle o active e che hanno un valore non nullo per il campo severity.

    severity != null not anyof(oracle, active)
  • Corrisponde ai log che NON contengono entrambe le parole oracle o active e che hanno un valore non nullo per il campo severity.

    severity != null not allof(oracle, active)
  • Restituisce i valori severity che iniziano con d o iniziano con f:

    * | distinct Severity | where anyof(substr(severity, 0, 1) = d, substr(severity, 0, 1) = f)
  • Restituisce i valori severity che iniziano con f e sono not fatal:

    * | distinct Severity | where allof(severity != fatal, substr(severity, 0, 1) = f)

Altri esempi per allfields() e anyfields():

  • Restituisce i log in cui tutti i campi che iniziano con la stringa tar (ad esempio Target, Target Guid, Target Type) sono non nulli:

    allfields(tar*) != null
  • allfields è la funzione predefinita e la query precedente può essere scritta nel modo seguente:

    'tar*' != null
  • Restituisce i log in cui uno qualsiasi dei campi che iniziano con tar è nullo:

    
    anyFields(tar*) = null
  • Corrisponde ai log con tutti i campi numerici che terminano con length (ad esempio: Lunghezza pacchetto, Lunghezza, Lunghezza pacchetto UDP) con il valore 2:

    allFields(*length) = 2
  • Corrisponde ai log con uno qualsiasi dei campi numerici che terminano con length con un valore 2:

    anyFields(*length) = 2