This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Community Hub.
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.
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:
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.
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.
Para construir o workbook clique em “Pin to” conforme ilustrado na imagem e selecione a opção “Send to workbook”.
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.
Com isso temos nosso workbook que nos ajudará a visualizar os recursos criados na Azure.
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