Jump to content

Monitorando Recursos Criados na Azure com Kusto Query Language (KQL) e Log Analytics

Featured Replies

Posted

Monitorando Recursos Criados na Azure com Kusto Query Language (KQL) e Log Analytics

 

 

Este artigo técnico destina-se a fornecer uma visão geral básica de como monitorar recursos recém-criados na plataforma Microsoft Azure usando a Linguagem de Consulta Kusto (KQL) e o recurso Log Analytics. O AzureActivity é uma tabela especial do Log Analytics que registra todas as atividades do Azure. Através da análise e filtragem dos registros nesta tabela usando KQL, é possível identificar e acompanhar recursos criados recentemente, auxiliando na detecção de possíveis eventos indesejados ou suspeitos.

 

 

 

Introdução

 

 

O monitoramento de atividades em nuvem é essencial para garantir a segurança, o desempenho e a conformidade das implantações na Microsoft Azure. A tabela AzureActivity, disponível no serviço Log Analytics, fornece informações detalhadas sobre todas as atividades realizadas em uma assinatura do Azure, incluindo criação de recursos, atualizações e exclusões. Usando a Linguagem de Consulta Kusto (KQL), podemos filtrar e analisar esses registros para obter insights valiosos sobre os recursos recém-criados.

 

[ATTACH=full]54839[/ATTACH]

 

 

 

 

 

Pré-requisitos:

 

  • Uma conta do Microsoft Azure com permissões de acesso ao serviço Log Analytics.
  • Familiaridade básica com Kusto Query Language (KQL) e conceitos de Log Analytics.

Passo 1: Acessando o Log Analytics e a tabela AzureActivity

 

 

Antes de começar a consulta, certifique-se de que possui acesso ao serviço Log Analytics e à tabela AzureActivity em sua assinatura do Azure. Verifique se você possui permissões adequadas para executar consultas no Log Analytics.

 

Passo 2: Escrevendo a Consulta Kusto (KQL)

 

 

A consulta Kusto que utilizaremos para monitorar recursos criados na Azure é a seguinte:

 

 

 

 

 

 

 

AzureActivity

| where TimeGenerated > ago(7d)

| extend isValidGuid = Caller matches regex "[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[1-5][A-Fa-f0-9]{3}-[89ABab][A-Fa-f0-9]{3}-[A-Fa-f0-9]{12}"

| where OperationNameValue endswith "Write" and ActivitySubstatusValue contains "Created" and not (isValidGuid)

| where not( OperationNameValue has_any ("Deployments","SSHPUBLICKEYS","NETWORKWATCHERS","VIRTUALMACHINES/EXTENSIONS","ACTIONGROUPS","SCHEDULEDQUERYRULES"))

| order by TimeGenerated asc

| project SubscriptionId, ResourceGroup, Caller, CallerIpAddress, OperationNameValue, ActivitySubstatusValue, _ResourceId

 

 

 

 

 

 

 

Passo 3: Explicação da Consulta Agora, vamos entender cada etapa da consulta Kusto:

 

  • A cláusula AzureActivity indica que estamos consultando a tabela AzureActivity.
  • | where TimeGenerated > ago(7d): Filtra os registros para incluir apenas aqueles gerados nos últimos 7 dias.
  • | extend isValidGuid = Caller matches regex "[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[1-5][A-Fa-f0-9]{3}-[89ABab][A-Fa-f0-9]{3}-[A-Fa-f0-9]{12}": Cria uma nova coluna chamada isValidGuid que verifica se o valor da coluna Caller corresponde a um padrão de GUID válido.
  • | where OperationNameValue endswith "Write" and ActivitySubstatusValue contains "Created" and not (isValidGuid): Filtra os registros para incluir apenas aqueles em que:
    • OperationNameValue termina com a string "Write".
    • ActivitySubstatusValue contém a string "Created".
    • isValidGuid é falso, ou seja, o valor da coluna Caller não corresponde a um GUID válido.

    [*]| where not( OperationNameValue has_any ("Deployments","SSHPUBLICKEYS","NETWORKWATCHERS","VIRTUALMACHINES/EXTENSIONS","ACTIONGROUPS","SCHEDULEDQUERYRULES")): Filtra os registros para excluir aqueles em que o valor da coluna OperationNameValue tem algumas strings específicas, como "Deployments" e "VIRTUALMACHINES/EXTENSIONS".

    [*]| order by TimeGenerated asc: Classifica os resultados em ordem crescente com base no valor da coluna TimeGenerated.

    [*]| project SubscriptionId, ResourceGroup, Caller, CallerIpAddress, OperationNameValue, ActivitySubstatusValue, _ResourceId: Exibe apenas as colunas SubscriptionId, ResourceGroup, Caller, CallerIpAddress, OperationNameValue, ActivitySubstatusValue e _ResourceId nos resultados.

Passo 4: Verificando os registros

 

 

Ao executar esta query no workspace do log Analytics onde os logs de atividades estão sendo armazenado, consigo verificar a lista de recursos criados nos últimos 7 dias.

 

[ATTACH=full]54840[/ATTACH]

 

 

 

Passo 5: Visualizando os dados através de um workbook

 

 

Uma possibilidade será criar um alerta ou visualizar as informações através de painel de monitoramento ou de um workbook.

 

Iremos comentar a linha 2 da query correspondente ao time range desejado, pois iremos usar um parâmetro de “TimeRange” do Workbook.

 

[ATTACH=full]54841[/ATTACH]

 

 

 

Para construir o workbook clique em “Pin to” conforme ilustrado na imagem e selecione a opção “Send to workbook”.

 

[ATTACH=full]54842[/ATTACH]

 

 

 

Podemos criar um workbook ou usar um existente, mas no nosso caso iremos criar um novo workbook para visualização dos recursos criados. Marque a opção “Add a time range parameter ans have generated steps reference it” e selecione o query correspondente conforme ilustrado na imagem.

 

[ATTACH=full]54843[/ATTACH]

 

 

 

Com isso temos nosso workbook que nos ajudará a visualizar os recursos criados na Azure.

 

[ATTACH=full]54844[/ATTACH]

 

 

 

Conclusão

 

Através da Linguagem de Consulta Kusto (KQL) e da tabela AzureActivity no Log Analytics, podemos monitorar e rastrear recursos recém-criados na plataforma Azure. A consulta apresentada neste artigo permite identificar atividades suspeitas e potencialmente indesejadas, ajudando os administradores a garantirem a segurança e o compliance de suas implantações na nuvem. Monitore constantemente a tabela AzureActivity e adapte suas consultas conforme necessário para manter seu ambiente seguro e eficiente na Microsoft Azure.

 

Mais informações

 

Azure activity log - Azure Monitor | Microsoft Learn

 

Kusto Query Language (KQL) overview | Microsoft Learn

 

Creating an Azure Workbook - Azure Monitor | Microsoft Learn

 

Overview of Azure Monitor alerts - Azure Monitor | Microsoft Learn

 

Continue reading...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...