Visualização de Clusters
A clusterização usa o aprendizado de máquina para identificar o padrão de registros de log e, em seguida, agrupar os logs que têm um padrão semelhante.
A view Cluster exibe um banner de resumo na parte superior mostrando as seguintes guias:
-
Total de Clusters: Número total de clusters para os registros de log selecionados.
Observação
Se você passar o cursor sobre esse painel, também poderá ver o número de registros de log (por exemplo, 260 clusters de 1.413.036 registros de log).
-
Problemas Potenciais: Número de clusters que têm problemas potenciais com base em registros de log que contêm palavras como erro, fatal, exceção etc.
-
Outliers: O número de clusters que ocorreram apenas uma vez durante um determinado período.
-
Tendências: Número de tendências exclusivas durante o período. Muitos clusters podem ter a mesma tendência. Assim, um clique nesse painel mostra um cluster de cada uma das tendências.
Quando você clica em qualquer uma das guias, a view de histograma do cluster é alterada para exibir os registros da guia selecionada.
Cada padrão de cluster exibe o seguinte:
-
Tendência: Esta coluna exibe uma representação em minigráfico da tendência (denominada forma de tendência) da geração de mensagens de log (de um cluster) com base na faixa de tempo selecionada quando você agrupou os registros em clusters. Cada forma de tendência é identificada por um ID de Forma, como 1, 2, 3 e assim por diante. Isso ajuda a classificar os registros clusterizados com base nas formas de tendência.
Um clique na seta para a esquerda de uma entrada de tendência exibe a visualização da série de tempo dos resultados do cluster. Essa visualização mostra como os registros de log em um cluster foram distribuídos com base na faixa de tempo selecionada na consulta. A forma de tendência é uma representação dispersa da série de tempo.
-
ID: Esta coluna lista o ID do cluster. O ID é exclusivo na coleta.
-
Contagem: Esta coluna lista o número de registros de log com a mesma assinatura de mensagem.
-
Mensagem de Amostra: Esta coluna exibe um registro de log de amostra da assinatura da mensagem.
-
Origem de Log: Esta coluna lista as origens de log que geraram as mensagens do cluster.
Você pode clicar em Mostrar Tendências Semelhantes para classificar clusters em uma ordem crescente de formas de tendências. Você também pode selecionar um ou vários IDs de cluster e clicar em Mostrar Registros para exibir todos os registros dos IDs selecionados.
Você também pode ocultar uma mensagem de cluster ou vários clusters dos resultados do cluster se a saída parecer desorganizada. Clique com o botão direito do mouse no cluster necessário e selecione Ocultar Cluster.
Em cada registro, os valores das variáveis são destacados. Você pode exibir todas as variáveis semelhantes em cada cluster clicando em uma variável na seção Mensagem de Amostra. Um clique nas variáveis mostra todos os valores (no conjunto completo de registros) dessa variável específica.
Na seção Mensagem de Amostra, alguns padrões de cluster exibem um link <n> mais amostras.... Um clique nesse link exibe mais clusters semelhantes ao padrão de cluster selecionado.
Um clique em Voltar para Tendências leva você de volta para a página anterior com contexto (ela rola de volta para onde você selecionou a variável para detalhar mais). O botão Voltar do browser também o leva de volta à página anterior; no entanto, o contexto não será mantido, porque o comando cluster é executado novamente nesse caso.
Clusterizar os Dados de Log Usando Campos de SQL
O grande volume de registros de log é reduzido a 89 clusters, oferecendo assim menos grupos de dados de log para análise.
Você pode fazer drill-down dos clusters selecionando as variáveis. Por exemplo, no conjunto de clusters anterior, selecione o cluster que tem a mensagem de amostra SELECT version FROM V$INSTANCE
:
Isso exibe a visualização do histograma dos registros de log que contêm a mensagem de amostra especificada. Agora você pode analisar o conteúdo do log original. Clique em Voltar para o Cluster para retornar à visualização do cluster.
O painel Tendências mostra as SQLs que têm padrão de execução semelhante.
O painel Outliers exibe as SQLs raras e diferentes.
Usar o Utilitário de Comparação de Clusters
O utilitário de comparação de clusters pode ser usado para identificar novos problemas, comparando o conjunto atual de clusters com uma linha de base e reduzindo os resultados eliminando clusters comuns ou duplicados. Alguns dos cenários típicos são:
- Quais clusters são diferentes nesta semana em comparação com a semana passada?
- Qual é a diferença entre o conjunto de clusters da entidade A e o conjunto da entidade B?
Consulte Comparação de Clusters por Horário Atual.
- As coisas estavam funcionando bem no mês X. O que mudou nesse mês?
Considerando dois conjuntos de dados de log, o utilitário de comparação de clusters remove os dados pertencentes aos clusters comuns e exibe os dados do histograma e a tabela de registros que são exclusivos de cada conjunto. Por exemplo, quando você compara os dados do log das semanas x e da semana y, os clusters comuns às duas semanas são removidos para simplificação e os dados exclusivos de cada semana são exibidos. Isso permite identificar padrões exclusivos da semana específica e analisar o comportamento.
Para obter a sintaxe e outros detalhes do comando clustercompare
, consulte clustercompare.
- Na visualização
dos clusters, selecione a faixa de tempo atual. Por padrão, a consulta é
*
. Você pode refinar a consulta para filtrar dados de log. - No painel Visualizar, clique em Comparação de Clusters.
A caixa de diálogo de comparação de clusters é aberta.
- Você pode observar que a consulta e a faixa de tempo atuais são exibidas para referência.
- Consulta de Linha de Base: Por padrão, essa é a mesma consulta atual. Clique em
e modifique a consulta de linha de base, se necessário.
- Faixa de Tempo da Linha de Base: Por padrão, o utilitário de comparação de clusters utiliza a opção Usar Mudança de Horário para determinar a faixa de tempo da linha de base. Portanto, a faixa de tempo da linha de base é da mesma duração da faixa de tempo atual e é alterada para o período antes da faixa de tempo atual. Você pode modificar isso clicando no ícone
e selecionando Usar Tempo Personalizado ou Usar Horário Atual. Se você selecionar Usar Tempo Personalizado, especifique a faixa de tempo personalizada usando o menu.
- Clique em Comparar.
Agora você pode exibir a comparação de clusters entre os dois conjuntos de logs.
Clique no botão correspondente a cada conjunto para exibir os detalhes como clusters, possíveis problemas, discrepâncias, tendências e tabela de registros que são exclusivos do conjunto. A página também exibe o número de clusters comuns entre os dois conjuntos de logs.
No exemplo anterior, há 11 clusters encontrados apenas na faixa atual, 4 apenas na faixa da linha de base e 30 comuns nas duas faixas. O histograma da faixa de tempo atual exibe a visualização usando apenas os dados do log que são exclusivos da faixa de tempo atual.
- Consulta de Linha de Base: Por padrão, essa é a mesma consulta atual. Clique em
Os clusters encontrados somente na faixa atual são retornados primeiro, seguidos pelos encontrados apenas na faixa da linha de base. Os resultados combinados são limitados a 500 clusters. Para reduzir os resultados da comparação de clusters, reduza a faixa de tempo atual ou anexe um comando para limitar o número de resultados. Por exemplo, anexar | head 250
limitará os clusters atuais e da linha de base a 250 cada. Use multisseleção (clique no mouse, mantendo-o pressionado, e arraste o item) no histograma de clusters para reduzir a faixa de tempo atual ao utilizar a opção de tempo personalizado. O valor de mudança de faixa de tempo pode ser convertido em minutos ou segundos para assegurar que nenhuma lacuna ou sobreposição de tempo ocorra entre as faixas de tempo atual e da linha de base.
Usar Lookup de Dicionário no Cluster
Use o lookup de dicionário após o comando cluster
para anotar clusters.
Considere os resultados de cluster
para Linux Syslog Logs. Para definir um dicionário a fim de adicionar labels com base no campo Amostra de Cluster:
-
Crie um arquivo CSV com o seguinte conteúdo:
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
Importe-o como lookup de tipo de Dicionário usando o nome Linux Error Categories. Essa consulta contém dois campos, Issue e Area que podem ser retornados em uma condição de correspondência. Consulte Criar um Lookup de Dicionário.
-
Use o dicionário no cluster para retornar um campo:
Execute o comando
cluster
para Linux Syslog Logs. Adicione um comandolookup
apóscluster
, conforme mostrado a seguir:'Log Source' = 'Linux Syslog Logs' | cluster | lookup table = 'Linux Error Categories' select Issue using 'Cluster Sample'
O valor de Cluster Sample para cada linha é avaliado em relação às regras definidas no dicionário Categorias de Erro do Linux. O campo Problema é retornado de cada linha correspondente.
-
Retorne mais de um campo selecionando cada campo no comando
lookup
:'Log Source' = 'Linux Syslog Logs' | cluster | lookup table = 'Linux Error Categories' select Issue as Category, Area using 'Cluster Sample'
A consulta anterior seleciona o campo Issue e também o renomeia para Category. O campo Area também é selecionado, mas não renomeado.
-
Filtre os resultados do cluster usando os campos de dicionário:
Use o comando
where
nos campos específicos para filtrar os clusters. Considere a seguinte consulta:'Log Source' = 'Linux Syslog Logs' | cluster | lookup table = 'Linux Error Categories' select Issue as Category, Area using 'Cluster Sample' | where Area in (Unknown, Disk)
Isso exibe somente os registros que correspondem aos valores especificados para o campo Área.
Clusterização Semântica
A Visualização de Cluster permite clusterizar mensagens de texto em registros de log. O cluster funciona agrupando mensagens com número semelhante de palavras em uma sentença e identificando as palavras que mudam nessas sentenças. O cluster não considera o significado literal das palavras durante o agrupamento.
O comando nlp
suporta clusterização semântica. A Clusterização Semântica é feita extraindo as palavras-chave relevantes de uma mensagem e clusterizando com base nessas palavras-chave. Dois conjuntos de mensagens que têm palavras semelhantes são agrupados juntos. Cada grupo recebe um ID de Cluster determinístico.
O exemplo a seguir mostra o uso de clusterização NLP e de palavras-chave em Linux Syslog Logs:
'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'

Para obter mais exemplos de casos de uso de clustering semântica, consulte Exemplos de Clusterização Semântica.
Comando nlp
O comando nlp
só pode ser usado após o comando link
e suporta duas funções. cluster()
pode ser usado para clusterizar o campo especificado e keywords()
pode ser usado para extrair palavras-chave do campo especificado.
O comando nlp
só pode ser usado após o comando link
. Consulte nlp.
-
nlp cluster()
:cluster()
usa o nome de um campo gerado no Link e retorna o ID do Cluster para cada valor clusterizado. O ID do Cluster retornado é um número, representado como string. O ID do Cluster pode ser usado em consultas para filtrar os clusters.Por exemplo:
nlp cluster('Description') as 'Description ID'
- Isso extrairia palavras-chave relevantes do campoDescription
. O campoDescription ID
conteria um ID exclusivo para cada cluster gerado. -
nlp keywords()
:Extrai palavras-chave dos valores de campo especificados. As palavras-chave são extraídas com base em um dicionário. O nome do dicionário pode ser fornecido usando a opção
table
. Se nenhum dicionário for fornecido, o dicionário padrão pronto para usoNLP General Dictionary será usado.Por exemplo:
nlp keywords('Description') as Summary
- Isso extrairia palavras-chave relevantes do campoDescription
. As palavras-chave podem ser acessadas usando o campoSummary
.nlp table='My Issues' cluster('Description') as 'Description ID'
- Em vez do dicionário padrão, use o dicionário personalizado My Issues.
Dicionário NLP
A Clusterização Semântica funciona dividindo uma mensagem em palavras, extraindo as palavras relevantes e agrupando as mensagens que têm palavras semelhantes. Portanto, a qualidade da clusterização depende da relevância das palavras-chave extraídas.
- Um dicionário é usado para decidir quais palavras em uma mensagem devem ser extraídas.
- A ordem dos itens no dicionário é importante. Um item na primeira linha tem classificação mais alta que o item na segunda linha.
- Um dicionário é criado como arquivo .csv e importado usando a interface do usuário de Lookup com a opção Dictionary Type.
- Não é necessário criar um dicionário, a menos que você queira alterar a classificação das palavras. O padrão
NLP General Dictionary
pronto para uso será utilizado se nenhum dicionário for especificado. Ele contém palavras em Inglês pré-treinadas.
Consulte Criar um Lookup de Dicionário.
Veja a seguir um exemplo de iSCSI Errors do dicionário:
Operador | Condição | Valor |
---|---|---|
|
erro |
substantivo |
|
reportado |
verbo |
|
iSCSI |
substantivo |
|
conexão |
substantivo |
|
fechado |
verbo |
O primeiro campo é reservado para uso futuro. O segundo campo é uma palavra. A terceira palavra especifica o tipo dessa palavra. O tipo pode ser qualquer string e pode ser referenciado pela consulta usando o parâmetro category
.
No exemplo anterior, a palavra erro tem uma classificação mais alta que as palavras reportado e iSCSI. Da mesma forma, conexão tem uma classificação mais alta que fechado.
Usando um Dicionário
Suponha que o seguinte texto seja visto no campo Message
:
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
A mensagem anterior é analisada e dividida em palavras. Os caracteres não alfabéticos são removidos. Veja a seguir algumas das palavras exclusivas geradas da divisão:
Kernel reported iSCSI connection error ERR TCP CONN CLOSE closed state ... ...
Há um total de 24 palavras na mensagem. Por padrão, a clusterização semântica tentaria extrair 20 palavras e usar essas palavras para executar a clusterização. Em um caso como o anterior, o sistema precisa saber quais palavras são importantes. Isso é feito usando o dicionário.
O dicionário é uma lista ordenada. Se iSCSI Errors fosse usado, o NLP não extrairia ERR, TCP ou CONN porque essas palavras não estão incluídas no dicionário. Da mesma forma, as palavras error, reported, iSCSI, connection e closed recebem prioridade mais alta por causa de sua classificação no dicionário.