Partilhar via


Monitorar eventos agendados para suas VMs do Windows

Aplica-se a: VMs VMs ✔️ ✔️ do Windows Conjuntos ✔️ de escala flexíveis Conjuntos de balanças uniformes

As atualizações são aplicadas a diferentes partes do Azure todos os dias, para manter os serviços em execução nelas seguros e atualizados. Além das atualizações planejadas, eventos não planejados também podem ocorrer. Por exemplo, se alguma degradação ou falha de hardware for detetada, os serviços do Azure podem precisar executar manutenção não planejada. Usando a migração ao vivo, preservando a memória das atualizações e mantendo um limite estrito sobre o impacto das atualizações, permitem que esses eventos sejam quase transparentes para os clientes. No máximo, eles podem causar alguns segundos de congelamento da máquina virtual. Para alguns aplicativos, no entanto, até mesmo alguns segundos de congelamento da máquina virtual podem causar um impacto. Saber com antecedência sobre a próxima manutenção do Azure é importante para garantir a melhor experiência para esses aplicativos. O serviço de Eventos Agendados fornece uma interface programática para ser notificado sobre a manutenção futura e permite que você lide com a manutenção de forma graciosa.

Este artigo mostra como você pode usar eventos agendados para ser notificado sobre eventos de manutenção que podem afetar suas VMs e criar alguma automação básica que pode ajudar no monitoramento e na análise.

Roteamento de eventos agendados para o Log Analytics

Os Eventos Agendados estão disponíveis como parte do Serviço de Metadados da Instância do Azure, que está disponível em todas as máquinas virtuais do Azure. Os clientes podem escrever automação para consultar o ponto de extremidade de suas máquinas virtuais para encontrar notificações de manutenção agendada e executar mitigações, como salvar o estado e tirar a máquina virtual da rotação. Recomendamos a automação de edifícios para registrar os Eventos Agendados para que você possa ter um log de auditoria de eventos de manutenção do Azure.

Neste artigo, explicamos como capturar eventos agendados de manutenção para o Log Analytics. Em seguida, acionamos algumas ações básicas de notificação, como enviar um e-mail para sua equipe e obter uma visão histórica de todos os eventos que afetaram suas máquinas virtuais. Para a agregação de eventos e automação, usamos o Log Analytics, mas você pode usar qualquer solução de monitoramento para coletar esses logs e acionar a automação.

Diagrama mostrando o ciclo de vida do evento

Pré-requisitos

Para este exemplo, você precisa criar uma máquina virtual do Windows em um conjunto de disponibilidade. Os Eventos Agendados fornecem notificações sobre alterações que podem afetar qualquer uma das máquinas virtuais no seu conjunto de disponibilidade, Serviço de Nuvem, Conjunto de Dimensionamento de Máquina Virtual ou VMs autônomas. É executado um serviço que sonda eventos agendados em uma das VMs que atuam como um coletor, para obter eventos para todas as outras VMs no conjunto de disponibilidade.

Não exclua o grupo de recursos do grupo no final do tutorial.

Você também precisa criar um espaço de trabalho do Log Analytics que usamos para agregar informações das VMs no conjunto de disponibilidade.

Configurar o ambiente

Agora você deve ter 2 VMs iniciais em um conjunto de disponibilidade. Agora precisamos criar uma 3ª VM, chamada myCollectorVM, no mesmo conjunto de disponibilidade.

New-AzVm `
   -ResourceGroupName "myResourceGroupAvailability" `
   -Name "myCollectorVM" `
   -Location "East US" `
   -VirtualNetworkName "myVnet" `
   -SubnetName "mySubnet" `
   -SecurityGroupName "myNetworkSecurityGroup" `
   -OpenPorts 3389 `
   -PublicIpAddressName "myPublicIpAddress3" `
   -AvailabilitySetName "myAvailabilitySet" `
   -Credential $cred
  1. Baixe o arquivo de .zip de instalação do projeto do GitHub.

  2. Conecte-se a myCollectorVM e copie o arquivo .zip para a máquina virtual e extraia todos os arquivos. Na VM, abra um prompt do PowerShell. Mova o prompt para a pasta que contém SchService.ps1, por exemplo: PS C:\Users\azureuser\AzureScheduledEventsService-master\AzureScheduledEventsService-master\Powershell>, e configure o serviço.

    .\SchService.ps1 -Setup
    
  3. Inicie o serviço.

    .\SchService.ps1 -Start
    
  4. Valide o status do serviço e verifique se ele está em execução.

    .\SchService.ps1 -status  
    

    O comando de validação deve retornar Running.

O serviço agora iniciará a sondagem a cada 10 segundos para quaisquer eventos agendados e aprovará os eventos para agilizar a manutenção. Freeze, Reboot, Redeploy e Preempt são os eventos capturados pelos eventos Schedule. Você pode estender o script para acionar algumas atenuações antes de aprovar o evento.

Quando qualquer um dos eventos acima for capturado pelo serviço Agendar Evento, ele será registrado no Status do Evento do Log de Eventos do Aplicativo, Tipo de Evento, Recursos (nomes de máquinas virtuais) e NotBefore (período mínimo de aviso). Você pode localizar os eventos com ID 1234 no log de eventos do aplicativo.

Depois que o serviço for configurado e iniciado, ele registrará eventos nos logs de aplicativos do Windows. Para verificar se isso funciona, reinicie uma das máquinas virtuais no conjunto de disponibilidade e você verá um evento sendo registrado no Visualizador de eventos no log do aplicativo Logs > do Windows mostrando a VM reiniciada.

Captura de ecrã do visualizador de eventos.

Quando os eventos são capturados pelo serviço Agendar Evento, ele será registrado no aplicativo até mesmo com Status do Evento, Tipo de Evento, Recursos (nome da VM) e NotBefore (período mínimo de aviso). Você pode localizar os eventos com ID 1234 no log de eventos do aplicativo.

Nota

Neste exemplo, as máquinas virtuais estavam em um conjunto de disponibilidade, o que nos permitiu designar uma única máquina virtual como o coletor para ouvir e rotear eventos agendados para nosso espaço de trabalho de análise de log. Se você tiver máquinas virtuais autônomas, poderá executar o serviço em cada máquina virtual e, em seguida, conectá-las individualmente ao seu espaço de trabalho de análise de log.

Para a nossa configuração, escolhemos o Windows, mas você pode projetar uma solução semelhante no Linux.

A qualquer momento, você pode parar/remover o Serviço de Eventos Agendados usando as opções –stop e –remove.

Conectar-se ao espaço de trabalho do Log Analytics

Agora queremos conectar um espaço de trabalho do Log Analytics à VM do coletor. O espaço de trabalho do Log Analytics atua como um repositório e configuraremos a coleta de logs de eventos para capturar os logs do aplicativo da VM do coletor.

Para rotear os Eventos Agendados para o Log de Eventos, que é salvo como Log do Aplicativo pelo nosso serviço, você precisará conectar sua máquina virtual ao espaço de trabalho do Log Analytics.

Configurar a recolha de dados

  1. Abra o portal do Azure.

  2. Na barra de pesquisa na parte superior, digite Log Analytics Workspaces e selecione-o nos resultados da pesquisa.

  3. Escolha o espaço de trabalho que você criou para abrir sua página.

  4. Em Configurações, selecione Agentes e clique em Máquinas Virtuais.

  5. Na guia Servidores Windows, clique em Regras de Coleta de Dados.

  6. Entre na guia Coletar e entregar e clique em Adicionar fonte de dadosCaptura de ecrã do separador 'Recolher e entregar' com uma secção de fonte de dados vazia.

  7. Na guia Fonte de dados, selecione Logs de Eventos do Windows na lista suspensa.

  8. Selecione os logs de eventos que deseja coletar. Certifique-se de que ERROR, WARNING, e INFORMATION estão selecionados. Captura de ecrã do separador 'Adicionar fonte de dados', mostrando várias caixas de verificação selecionadas.

  9. Clique em Avançar : Destino >

  10. Na guia Destino, clique em Adicionar destino.

  11. Preencha as seções Tipo de destino, Assinatura e Detalhes de destino com a VM do coletor e os detalhes da assinatura. Captura de ecrã do separador Destino a mostrar o tipo, a subscrição e os detalhes do destino.

  12. Depois de selecionar a VM correta, o agente do Microsoft Monitoring será instalado automaticamente em sua máquina virtual. Levará alguns minutos para conectar sua VM ao espaço de trabalho e instalar a extensão.

Nota

Há algum atraso, e pode levar até 10 minutos até que o log esteja disponível.

Criando uma regra de alerta com o Azure Monitor

Depois que os eventos forem enviados por push para o Log Analytics, você poderá executar a seguinte consulta para procurar os Eventos agendados.

  1. Na parte superior da página, selecione Logs e cole o seguinte na caixa de texto:

    Event
    | where EventLog == "Application" and Source contains "AzureScheduledEvents" and RenderedDescription contains "Scheduled" and RenderedDescription contains "EventStatus" 
    | project TimeGenerated, RenderedDescription
    | extend ReqJson= parse_json(RenderedDescription)
    | extend EventId = ReqJson["EventId"]
    ,EventStatus = ReqJson["EventStatus"]
    ,EventType = ReqJson["EventType"]
    ,NotBefore = ReqJson["NotBefore"]
    ,ResourceType = ReqJson["ResourceType"]
    ,Resources = ReqJson["Resources"]
    | project-away RenderedDescription,ReqJson
    
  2. Selecione Guardar e, em seguida, escreva ogQuery o nome, deixe Consulta como o tipo, escreva VMLogs como a Categoria e, em seguida, selecione Guardar.

    Guardar a consulta

  3. Selecione Nova regra de alerta.

  4. Na página Criar regra, deixe collectorworkspace como o Recurso.

  5. Em Condição, selecione a entrada Sempre que a pesquisa de log do cliente estiver <indefinida>. A página Configurar lógica de sinal será aberta.

  6. Em Valor do limite, digite 0 e selecione Concluído.

  7. Em Ações, selecione Criar grupo de ações. A página Adicionar grupo de ações será aberta.

  8. Em Nome do grupo de ações, digite myActionGroup.

  9. Em Nome curto, digite myActionGroup.

  10. Em Grupo de recursos, selecione myResourceGroupAvailability.

  11. Em Ações, em NOME DA AÇÃO, digite Email e selecione E-mail/SMS/Push/Voz. A página E-mail/SMS/Push/Voz será aberta.

  12. Selecione E-mail, digite seu endereço de e-mail e selecione OK.

  13. Na página Adicionar grupo de ações, selecione OK.

  14. Na página Criar regra, em DETALHES DO ALERTA, digite myAlert para o nome da regra de alerta e, em seguida, digite Regra de alerta por email para a Descrição.

  15. Quanto terminar, selecione Criar regra de alerta.

  16. Reinicie uma das VMs no conjunto de disponibilidade. Dentro de alguns minutos, você receberá um e-mail informando que o alerta foi acionado.

Para gerir as suas regras de alerta, aceda ao grupo de recursos, selecione Alertas no menu esquerdo e, em seguida, selecione Gerir regras de alerta na parte superior da página.

Próximos passos

Para saber mais, consulte a página Serviço de eventos agendados no GitHub.