Visualizzazione cluster

La configurazione cluster utilizza l'apprendimento automatico per identificare il pattern dei record di log e quindi per raggruppare i log con un pattern simile.

Il clustering consente di ridurre in modo significativo il numero totale di voci di log da esplorare e di evidenziare facilmente i valori anomali. Le voci del log raggruppate vengono presentate come Messaggio di esempio.
  1. Aprire il menu di navigazione e fare clic su Osservabilità e gestione. In Logging Analytics fare clic su Explorer log.
  2. Cercare i log per un set di entità. Vedere Cerca nei log per entità.
  3. Nel pannello Visualizza, selezionare Cluster (Apri cluster).

    Visualizzazione del cluster che mostra l'istogramma e il riepilogo del cluster

È possibile vedere che record di log simili sono raggruppati in cluster insieme a una vista istogramma di tutti i record raggruppati per intervallo di tempo. È possibile eseguire lo zoom avanti su un determinato insieme di intervalli (record raggruppati in base agli intervalli di tempo in questo caso) nell'istogramma tenendo premuto il pulsante sinistro del mouse e disegnando un rettangolo sull'insieme di intervalli richiesto. Dopo lo zoom avanti, i record del cluster cambiano in base all'intervallo selezionato.

Nella vista Cluster viene visualizzato un banner di riepilogo nella parte superiore con le schede riportate di seguito.

  • Cluster totali: numero totale di cluster per i record di log selezionati.


    Banner del cluster per il totale dei cluster

    Nota

    Se si passa il cursore su questo pannello, è possibile visualizzare anche il numero di record di log (ad esempio, 260 cluster da 1.413.036 record di log).

  • Problemi potenziali: numero di cluster con potenziali problemi basati su record di log contenenti parole quali errore, errore irreversibile, eccezione e così via.


    banner del cluster: potenziali problemi

  • Valori anomali: numero di cluster che si sono verificati una sola volta durante un determinato periodo di tempo.


    Banner cluster - valori anomali

  • Andamenti: numero di andamenti univoci durante il periodo di tempo. Molti cluster possono avere la stessa tendenza. Pertanto, facendo clic su questo pannello viene visualizzato un cluster di ciascuna tendenza.


    Banner cluster - tendenze

Quando si fa clic su una delle schede, la vista istogramma del cluster viene modificata per visualizzare i record per la scheda selezionata.

Ogni pattern cluster visualizza quanto riportato di seguito.

  • Andamento: in questa colonna viene visualizzata una rappresentazione sparkline della tendenza (detta forma di tendenza) della generazione dei messaggi di log (di un cluster) in base all'intervallo di tempo selezionato al momento del raggruppamento dei record. Ogni forma di tendenza è identificata da un ID forma, ad esempio 1, 2, 3 e così via. Ciò consente di ordinare i record in cluster in base alle forme di tendenza.

    Se si fa clic sulla freccia a sinistra di una voce di tendenza, viene visualizzata la serie temporale dei risultati del cluster. Questa visualizzazione mostra come i record di log in un cluster sono stati distribuiti in base all'intervallo di tempo selezionato nella query. La forma di tendenza è una rappresentazione sparkline della serie temporale.

  • ID: questa colonna elenca l'ID cluster. L'ID è univoco all'interno della raccolta.

  • Conteggio: questa colonna elenca il numero di record di log con la stessa firma del messaggio.

  • Messaggio di esempio: in questa colonna viene visualizzato un record di log di esempio della firma del messaggio.

  • Origine log: in questa colonna sono elencate le origini log che hanno generato i messaggi del cluster.

È possibile fare clic su Mostra tendenze simili per ordinare i cluster in ordine crescente di forme di tendenza. È inoltre possibile selezionare uno o più ID cluster e fare clic su Mostra record per visualizzare tutti i record per gli ID selezionati.

È inoltre possibile nascondere un messaggio cluster o più cluster dai risultati del cluster se l'output sembra ingombrante. Fare clic con il pulsante destro del mouse sul cluster richiesto e selezionare Nascondi cluster.

In ogni record i valori delle variabili vengono evidenziati. È possibile visualizzare tutte le variabili simili in ogni cluster facendo clic su una variabile nella sezione Messaggio di esempio. Se si fa clic sulle variabili, vengono visualizzati tutti i valori (nell'intero insieme di record) per quella determinata variabile.

Nella sezione Messaggio di esempio, alcuni pattern di cluster visualizzano un collegamento <n> altri esempi.... Facendo clic su questo collegamento vengono visualizzati altri cluster simili al pattern cluster selezionato.

Se si fa clic su Torna alle tendenze, si torna alla pagina precedente con il contesto, dove la variabile è stata selezionata per eseguire il drill-down. Il pulsante Indietro del browser riporta anche alla pagina precedente; tuttavia, il contesto non verrà mantenuto, poiché il comando cluster viene eseguito di nuovo in questo caso.

Clusterare i dati di log mediante i campi SQL

Di seguito è riportato un esempio di clustering dei campi SQL.

L'elevato volume di record di log viene ridotto a 89 cluster, offrendo così un numero inferiore di gruppi di dati di log da analizzare.

È possibile espandere i cluster selezionando le variabili. Ad esempio, dal set di cluster sopra riportato, selezionare il cluster con il messaggio di esempio SELECT version FROM V$INSTANCE:



Viene visualizzata la visualizzazione dell'istogramma dei record di log contenenti il messaggio di esempio specificato. Ora è possibile analizzare il contenuto del log originale. Fare clic su Torna al cluster per tornare alla visualizzazione del cluster.

Il pannello Tendenze mostra le istruzioni SQL con un pattern di esecuzione simile.

Nel pannello Valori anomali vengono visualizzate le istruzioni SQL rare e diverse.

Usa utility di confronto cluster

La utility di confronto cluster può essere utilizzata per identificare nuovi problemi confrontando il set corrente di cluster con una baseline e riducendo i risultati eliminando i cluster comuni o duplicati. Alcuni degli scenari tipici sono:

Dati due set di dati di log, la utility di confronto cluster rimuove i dati relativi ai cluster comuni e visualizza i dati dell'istogramma e la tabella dei record univoci per ogni set. Ad esempio, quando si confrontano i dati di log della settimana x e della settimana y, i cluster comuni a entrambe le settimane vengono rimossi per semplificazione e vengono visualizzati i dati univoci per ogni settimana. Ciò consente di identificare i pattern univoci per la settimana specifica e di analizzare il comportamento.

Per la sintassi e altri dettagli del comando clustercompare, vedere clustercompare.

  1. Nella visualizzazione Apri cluster dei cluster, selezionare l'intervallo di tempo corrente. Per impostazione predefinita, la query è *. È possibile restringere la query per filtrare i dati di log.
  2. Nel pannello Visualizza, fare clic su Confronto cluster.

    Viene visualizzata la finestra di dialogo Confronto cluster.

  3. È possibile notare che la query corrente e l'intervallo di tempo corrente vengono visualizzati come riferimento.
    • Query di base: per impostazione predefinita, corrisponde alla query corrente. Fare clic su icona di modifica e modificare la query baseline, se necessario.
    • Intervallo di tempo di base: per impostazione predefinita, la utility di confronto cluster utilizza l'opzione Usa turno orario per determinare l'intervallo di tempo della baseline. Pertanto, l'intervallo di tempo della baseline ha la stessa durata dell'intervallo di tempo corrente e viene spostato nel periodo precedente all'intervallo di tempo corrente. È possibile modificare questa impostazione facendo clic sull'icona icona di modifica e selezionando Usa ora personalizzata o Usa ora corrente. Se si seleziona Usa ora personalizzata, specificare l'intervallo di tempo personalizzato utilizzando il menu.
    • Fare clic su Confronta.

      È ora possibile visualizzare il confronto cluster tra i due set di log.

      Fare clic sul pulsante corrispondente a ciascun set per visualizzare i dettagli, ad esempio cluster, problemi potenziali, valori anomali, andamenti e tabelle di record univoci per il set. Nella pagina viene inoltre visualizzato il numero di cluster comuni tra i due set di log.

      Nell'esempio precedente, sono presenti 11 cluster trovati solo nell'intervallo corrente, 4 cluster trovati solo nell'intervallo baseline e 30 cluster comuni in entrambi gli intervalli. L'istogramma per l'intervallo di tempo corrente visualizza la visualizzazione utilizzando solo i dati di log univoci per l'intervallo di tempo corrente.

Nota

I cluster trovati solo nell'intervallo corrente vengono restituiti per primi, seguiti dai cluster trovati solo nell'intervallo della baseline. I risultati combinati sono limitati a 500 cluster. Per ridurre i risultati del confronto cluster, ridurre l'intervallo di tempo corrente o aggiungere un comando per limitare il numero di risultati. Ad esempio, l'aggiunta di | head 250 limiterà entrambi i cluster correnti e baseline a 250 ciascuno. Usare la selezione multipla (fare clic e trascinare tenendo premuto) sull'istogramma del cluster per ridurre l'intervallo di tempo corrente quando si utilizza l'opzione Ora personalizzata. Il valore dello scarto dell'intervallo di tempo può essere convertito in minuti o secondi per garantire che non si verifichino vuoti temporali o sovrapposizioni tra gli intervalli di tempo correnti e della baseline.

Usare la ricerca del dizionario nel cluster

Utilizzare la ricerca del dizionario dopo il comando cluster per annotare i cluster.

Prendere in considerazione i risultati di cluster per Linux Syslog Log. Per definire un dizionario per aggiungere etichette in base al campo Esempio cluster:

  1. Creare un file CSV contenente i contenuti riportati di seguito.

    Operator,Condition,Issue,Area
    CONTAINS IGNORE CASE,invalid compare operation,Compare Error,Unknown
    CONTAINS IGNORE CASE REGEX,DNS-SD.*?Daemon not running,DNS Daemon Down,DNS
    CONTAINS ONE OF REGEXES,"[[Cc]onnection refused,[Cc]onnection .*? closed]",Connection Error,Network
    CONTAINS IGNORE CASE,syntax error,Syntax Error,Validation
    CONTAINS IGNORE CASE REGEX,Sense.*?(?:Error|fail),Disk Sensing Error,Disk
    CONTAINS IGNORE CASE REGEX,device.*?check failed,Device Error,Disk

    Importare la ricerca come tipo di dizionario utilizzando il nome Categorie di errore Linux. Questo lookup contiene due campi, Problema e Area, che possono essere restituiti in base a una condizione corrispondente. Vedere Creare una ricerca nel dizionario.

  2. Utilizzare il dizionario nel cluster per restituire un campo:

    Eseguire il comando cluster per i log Syslog di Linux. Aggiungere un comando lookup dopo cluster, come mostrato di seguito:

    'Log Source' = 'Linux Syslog Logs' 
    | cluster
    | lookup table = 'Linux Error Categories' select Issue using 'Cluster Sample'

    Il valore di Campione cluster per ogni riga viene valutato in base alle regole definite nel dizionario delle categorie di errore di Linux. Il campo Problema viene restituito da ogni riga corrispondente.

  3. Per restituire più campi, selezionare ogni campo nel comando lookup:

    'Log Source' = 'Linux Syslog Logs'
    | cluster
    | lookup table = 'Linux Error Categories' select Issue as Category, Area using 'Cluster Sample'

    La query precedente seleziona il campo Problema e lo rinomina in Categoria. Il campo Area è selezionato, ma non rinominato.

  4. Filtrare i risultati del cluster utilizzando i campi del dizionario:

    Utilizzare il comando where nei campi specifici per filtrare i cluster. Considerare la seguente query:

    'Log Source' = 'Linux Syslog Logs' 
    | cluster 
    | lookup table = 'Linux Error Categories' select Issue as Category, Area using 'Cluster Sample' 
    | where Area in (Unknown, Disk)

    Vengono visualizzati solo i record che corrispondono ai valori specificati per il campo Area.

Configurazione cluster semantica

Cluster Visualization consente di raggruppare i messaggi di testo nei record di log. Cluster funziona raggruppando i messaggi che hanno un numero simile di parole in una frase e identificando le parole che cambiano all'interno di tali frasi. Cluster non considera il significato letterale delle parole durante il raggruppamento.

Il comando nlp supporta il clustering semantico. Il clustering semantico viene eseguito estraendo le parole chiave pertinenti da un messaggio e dal clustering basato su queste parole chiave. Due insiemi di messaggi con parole simili sono raggruppati. A ciascun gruppo di questo tipo viene assegnato un ID cluster deterministico.

L'esempio seguente mostra l'uso del clustering NLP e delle parole chiave nei log di syslog Linux:

'Log Source' = 'Linux Syslogs Logs'
| link Time, Entity, cluster()
| nlp cluster('Cluster Sample') as 'Cluster ID', 
                    keywords('Cluster Sample') as Keywords
| classify 'Start Time', Keywords, Count, Entity as 'Cluster Keywords'

Clustering NLP e parole chiave nei log di syslog Linux

Per ulteriori esempi di casi d'uso del clustering semantico, vedere Esempi di clustering semantico.

Comando nlp

Il comando nlp può essere utilizzato solo dopo il comando link e supporta due funzioni. È possibile utilizzare cluster() per raggruppare in cluster il campo specificato e keywords() per estrarre le parole chiave dal campo specificato.

Il comando nlp può essere utilizzato solo dopo il comando link. Vedere nlp.

  • nlp cluster():

    cluster() prende il nome di un campo generato nel collegamento e restituisce un ID cluster per ogni valore in cluster. L'ID cluster restituito è un numero rappresentato come stringa. L'ID cluster può essere utilizzato nelle query per filtrare i cluster.

    Ad esempio:

    nlp cluster('Description') as 'Description ID': consente di estrarre le parole chiave pertinenti dal campo Description. Il campo Description ID conterrebbe un ID univoco per ogni cluster generato.

  • nlp keywords():

    Estrae le parole chiave dai valori dei campi specificati. Le parole chiave vengono estratte in base a un dizionario. Il nome del dizionario può essere fornito con l'opzione table. Se non viene fornito alcun dizionario, viene utilizzato il dizionario predefinito predefinito NLP General Dictionary.

    Ad esempio:

    nlp keywords('Description') as Summary: consente di estrarre le parole chiave pertinenti dal campo Description. Le parole chiave sono accessibili utilizzando il campo Summary.

    nlp table='My Issues' cluster('Description') as 'Description ID': anziché utilizzare il dizionario predefinito, utilizzare il dizionario personalizzato Problemi personali.

Dizionario NLP

Il clustering semantico funziona dividendo un messaggio in parole, estraendo le parole rilevanti e quindi raggruppando i messaggi che hanno parole simili. La qualità del clustering dipende quindi dalla rilevanza delle parole chiave estratte.

  • Un dizionario viene utilizzato per decidere quali parole in un messaggio devono essere estratte.
  • L'ordine degli elementi nel dizionario è importante. Un elemento nella prima riga ha una classificazione più alta rispetto all'elemento nella seconda riga.
  • Un dizionario viene creato come file .csv e importato utilizzando l'interfaccia utente di ricerca con l'opzione Tipo di dizionario.
  • Non è necessario creare un dizionario, a meno che non si desideri modificare la classificazione delle parole. Se non viene specificato alcun dizionario, viene utilizzato il valore predefinito NLP General Dictionary pronto all'uso. Contiene parole inglese pre-addestrate.

Vedere Creare una ricerca nel dizionario.

Di seguito è riportato un esempio di dizionario Errori iSCSI.

Operatore Condizione Value

CONTAINS IGNORE CASE

errore

sostantivo

CONTAINS IGNORE CASE

report

verbo

CONTAINS IGNORE CASE

iSCSI

sostantivo

CONTAINS IGNORE CASE

connessione

sostantivo

CONTAINS IGNORE CASE

chiusa

verbo

Il primo campo è riservato per uso futuro. Il secondo campo è una parola. La terza parola specifica il tipo di parola. Il tipo può essere qualsiasi stringa e può essere utilizzato come riferimento dalla query utilizzando il parametro category.

Nell'esempio precedente, la parola error ha una classificazione superiore a quella delle parole reported o iSCSI. Analogamente, la classificazione di connessione è superiore a quella di chiusa.

Uso di un dizionario

Si supponga che nel campo Message venga visualizzato il testo seguente:

Kernel reported iSCSI connection 1:0 error (1020 - ISCSI_ERR_TCP_CONN_CLOSE: TCP connection closed) state (2) 
Please verify the storage and network connection for additional faults

Il messaggio di cui sopra viene analizzato e suddiviso in parole. I caratteri non alfabetici vengono rimossi. Di seguito sono riportate alcune delle parole univoche generate dallo split:

Kernel
reported
iSCSI
connection
error
ERR
TCP
CONN
CLOSE
closed
state
...
...

Il messaggio contiene un totale di 24 parole. Per impostazione predefinita, il clustering semantico tenterebbe di estrarre 20 parole e di utilizzare queste parole per eseguire il clustering. In un caso come quello sopra, il sistema deve sapere quali parole sono importanti. A tale scopo si usa il dizionario.

Il dizionario è un elenco ordinato. Se si utilizza Errori iSCSI, l'elaborazione NLP non estrae ERR, TCP o CONN perché queste parole non sono incluse nel dizionario. Analogamente, alle parole error, reported, iSCSI, connection e closed viene assegnata una priorità più alta a causa della relativa classificazione nel dizionario.