Exercício – Criar consultas de log básicas do Azure Monitor para extrair informações dos dados de log

Concluído

Atualmente, a equipe de operações não tem informações suficientes sobre o comportamento de seus sistemas para diagnosticar e solucionar problemas com eficiência. Para resolver esse problema, a equipe configurou um workspace do Azure Monitor com os serviços do Azure da empresa. Consultas Kusto são executadas para obter o status do sistema e tentar identificar as causas dos problemas que possam ocorrer.

Em particular, a equipe está interessada em monitorar eventos de segurança para verificar possíveis tentativas de invasão do sistema. Um invasor poderia tentar manipular os aplicativos em execução no sistema e, portanto, a equipe também deseja coletar dados de aplicativos para análise posterior. Um invasor também poderia tentar interromper os computadores que compõem o sistema e, portanto, a equipe deseja examinar como e quando os computadores são interrompidos e reiniciados.

Neste exercício, você praticará a execução de consultas de log do Azure em um projeto de demonstração que contém dados de exemplo em tabelas, logs e consultas.

Criar consultas de log básicas do Azure Monitor para extrair informações dos dados de log

Vamos usar o site do painel de Logs de Demonstração do Azure para praticar a escrita de consultas. O workspace do projeto de demonstração é preenchido automaticamente com amostras de dados. O Azure oferece consulta SQL otimizada com opções de visualização dos respectivos dados em uma linguagem chamada KQL (Linguagem de Consulta Kusto).

  1. Abra o Ambiente de demonstração de logs. No canto superior esquerdo, em Nova consulta 1, você encontrará uma Demonstração que identifica o workspace ou o escopo da consulta. O lado esquerdo desse painel contém várias guias: Tabelas, Consultas e Funções. O lado direito tem um bloco de rascunho para criar ou editar consultas.

  2. Na guia Nova Consulta 1, insira uma consulta básica na primeira linha do bloco de rascunho. A consulta recupera os detalhes dos dez eventos de segurança mais recentes.

    SecurityEvent
        | take 10
    
  3. Na barra de menus superior, selecione Executar a consulta para ver os resultados. Você pode expandir cada linha no painel de resultados para obter mais informações.

  4. Classifique os dados por tempo adicionando um filtro à sua consulta:

    SecurityEvent
        | top 10 by TimeGenerated
    
  5. Adicione uma cláusula de filtro e um intervalo de tempo. Execute essa consulta para buscar registros feitos há mais de 30 minutos com um nível 10 ou mais:

    SecurityEvent
        | where TimeGenerated < ago(30m)
        | where toint(Level) >= 10
    
  6. Execute a consulta a seguir para pesquisar a tabela AppEvents em busca do evento Clicked Schedule Button invocado nas últimas 24 horas:

    AppEvents 
        | where TimeGenerated > ago(24h)
        | where Name == "Clicked Schedule Button"
    
  7. Execute a consulta a seguir para exibir o número de computadores diferentes que geraram eventos de pulsação a cada semana, nas últimas três semanas. Os resultados aparecem como um gráfico de barras:

    Heartbeat
        | where TimeGenerated >= startofweek(ago(21d))
        | summarize dcount(Computer) by endofweek(TimeGenerated) | render barchart kind=default
    

Usar as consultas de log predefinidas do Azure para extrair informações dos dados de log

Além de escrever consultas a partir do zero, a equipe de operações também pode aproveitar as consultas predefinidas nos Logs do Azure para responder às perguntas mais comuns relacionadas à integridade, disponibilidade, uso e desempenho de seus recursos.

  1. Use o parâmetro Intervalo de Tempo na barra de comandos para definir um intervalo personalizado. Selecione o mês, o ano e o dia para um intervalo de janeiro até a data de hoje. Você pode definir e aplicar uma hora personalizada a qualquer consulta.

  2. Na barra de ferramentas à esquerda, selecione Consultas. Na lista de seleção do menu à esquerda, você pode ver uma lista das amostras de consulta agrupadas por Categoria, Tipo de consulta, Tipo de recurso, Solução ou Tópico.

    Captura de tela das opções da lista de seleção

  3. Selecione Categoria na lista suspensa e clique em Ferramentas de gerenciamento e TI.

  4. Na caixa de pesquisa, insira Diferentes atualizações ausentes entre computadores. Clique duas vezes na consulta no painel esquerdo e selecione Executar. O painel Logs é exibido novamente com os resultados da consulta retornando uma lista de atualizações ausentes do Windows das máquinas virtuais enviando logs para o workspace.

    Observação

    Execute também essa mesma consulta por meio do painel Logs. No painel esquerdo, selecione a guia Consultas e Categoria na lista suspensa Agrupar por. Agora, role a lista para baixo, expanda Ferramentas de Gerenciamento e TI e clique duas vezes em Atualizações ausentes distintas entre computadores. Clique em Executar para executar a consulta. Quando você seleciona uma consulta predefinida no painel esquerdo, o código de consulta é anexado a qualquer consulta existente no bloco de rascunho. Lembre-se de limpar o bloco de rascunho antes de abrir ou adicionar uma nova consulta a ser executada.

  5. No painel esquerdo, limpe a caixa de pesquisa. Selecione Consultas e em seguida, Categoria, na lista suspensa Agrupar por. Expanda Azure Monitor e clique duas vezes em Disponibilidade de computadores hoje. Selecione Executar. Essa consulta cria um gráfico de série temporal com o número de endereços IP exclusivos enviando logs para o workspace a cada hora durante o último dia.

  6. Selecione Tópico na lista suspensa Agrupar por, role para baixo para expandir Aplicativo de Funções e, em seguida, clique duas vezes em Mostrar logs de aplicativo dos Aplicativos de Funções. Selecione Executar. Essa consulta retorna uma lista de logs de aplicativo, classificada por tempo com os logs mais recentes mostrados primeiro.

Você notará que, a partir das consultas Kusto usadas aqui, é fácil direcionar uma consulta para uma janela de tempo, nível de evento ou tipo de log de eventos específico. A equipe de segurança pode examinar com facilidade as pulsações para identificar quando os servidores estão indisponíveis, o que pode indicar um ataque de negação de serviço. Se a equipe identificar a hora em que um servidor estava indisponível, ela poderá consultar eventos no log de segurança por volta dessa hora para diagnosticar se a interrupção foi causada por um ataque. Além disso, as consultas predefinidas também podem avaliar a disponibilidade de VMs, identificar as atualizações do Windows que estão faltando e revisar os logs de firewall para conferir os fluxos de rede negados destinados às VMs sendo analisadas.