Monitorização de desempenho e disponibilidade híbrida

Azure Event Hubs
Azure Log Analytics
Azure Monitor
Azure Storage
Azure Virtual Machines

Esta arquitetura de referência mostra como usar o Azure Monitor para monitorar o desempenho e a disponibilidade de cargas de trabalho do sistema operacional (SO) executadas em máquinas virtuais (VMs). As VMs podem estar no Microsoft Azure, em ambientes locais ou em nuvens que não sejam do Azure.

Arquitetura

Diagrama ilustrando as funções de monitoramento e disponibilidade do Azure Monitor para cargas de trabalho do sistema operacional no Azure, em ambientes locais e com provedores de nuvem de terceiros. Os dados estão sendo enviados para um espaço de trabalho do Log Analytics. Os dados são usados pelos serviços Application Insights, Análise, Visualização, Alertas e Dimensionamento Automático como parte do Azure Monitor

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de Trabalho

  • Escritório principal no local - VM 1. Este componente é um aplicativo Web com acesso à Internet e uma página da Web voltada para o público, e agentes do Log Analytics e do Dependency instalados. Para obter informações sobre agentes, consulte Visão geral do agente do Log Analytics e Visão geral dos agentes do Azure Monitor, Agente de dependência.
  • Escritório principal no local - VM 2. Este ambiente de lógica empresarial não tem acesso à Internet. No entanto, ele tem agentes do Log Analytics e Dependency instalados.
  • Escritório principal no local - VM 3. Este componente é um armazenamento de dados sem acesso à Internet, mas com agentes do Log Analytics e Dependency instalados.
  • Escritório principal local - gateway do Log Analytics. O gateway do Log Analytics coleta dados de log e métricas das três VMs locais e os entrega no espaço de trabalho do Log Analytics pelo TCP (Transmission Control Protocol) na porta 443.
  • Escritório principal no local - Firewall. O tráfego de e para o ambiente local é roteado através do firewall.
  • Gateway. O gateway fornece conectividade com a filial.
  • Filial local - VM 4. Este componente é o aplicativo de negócios que está sendo executado sem acesso à Internet, mas com agentes do Log Analytics e Dependency instalados. O agente do Log Analytics instalado na VM é configurado para transferir dados diretamente para o espaço de trabalho do Log Analytics sem a necessidade de um gateway do Log Analytics.
  • Filial local - Gateway. Esse gateway conecta a filial ao escritório principal local por meio de uma Rede Privada Virtual (VPN).
  • Provedor de nuvem de terceiros - VM 5. Este componente é um aplicativo Web com acesso à Internet, uma página da Web voltada para o público e agentes do Log Analytics e do Dependency instalados.
  • Provedor de nuvem de terceiros - VM 6. Esse componente é um ambiente de armazenamento de dados sem acesso à Internet, mas com agentes do Log Analytics e do Dependency instalados. Não há conectividade direta dos ambientes de provedores de nuvem de terceiros para os ambientes locais.
  • Azure - VMSS. Este é um conjunto de escala criado usando os Conjuntos de Escala de Máquina Virtual do Azure. Ele executa um aplicativo de negócios com os agentes de diagnóstico e análise de log instalados.
  • Azure - Servidor de aplicativos. Este servidor tem uma única VM executando um aplicativo de negócios, com o Log Analytics e agentes de diagnóstico instalados.
  • Métricas do Azure Monitor. Os dados coletados pelas métricas do Azure Monitor são armazenados em um banco de dados de séries cronológicas otimizado para analisar dados com carimbo de data/hora. Ele também armazena métricas enviadas de VMs locais e VMs do Azure.
  • Azure Monitor - Espaço de trabalho do Log Analytics. Este espaço de trabalho armazena logs enviados de VMs locais, VMs do Azure e VMs em provedores de nuvem de terceiros. O espaço de trabalho é um recurso do Azure onde os dados são agregados e serve como um limite administrativo para acessar esses dados. Em seguida, outros serviços do Azure Monitor se conectam ao espaço de trabalho do Log Analytics e usam os dados para várias finalidades. Para obter mais informações, consulte Projetando sua implantação de Logs do Azure Monitor.
  • Azure Monitor - Insights - Application Insights. O Application Insights fornece análises de aplicativos e insights sobre seu uso. Neste exemplo de arquitetura, um teste de ping de disponibilidade verifica a disponibilidade do aplicativo Web local. As regras de alerta estão habilitadas para fornecer notificação de um teste reprovado. Para obter mais informações, consulte O que é o Application Insights? e Monitorar a disponibilidade de qualquer site.
  • Azure Monitor - Insights - Azure Monitor para VMs. O Azure Monitor for VMs monitoriza o desempenho e o estado de funcionamento das suas máquinas virtuais e conjuntos de dimensionamento de máquinas virtuais. O monitoramento inclui seus processos em execução e dependências de outros recursos. Nesse cenário, o Azure Monitor para VMs fornecerá informações sobre suas máquinas virtuais. Para obter mais informações, consulte O que é o Azure Monitor para VMs?.
  • Azure Monitor - Análise. Os dados de log e métricas das VMs são consultados nas métricas do Azure Monitor e no espaço de trabalho do Log Analytics usando a Kusto Query Language (KQL). Os resultados fornecem informações sobre a infraestrutura, topologia e recursos. Para obter mais informações, consulte Kusto: Visão geral e exemplos de consulta de log do Azure Monitor.
  • Azure Monitor - Visualizações. O Azure Monitor usa ferramentas de visualização para revisar componentes de aplicativo e infraestrutura e comunicações entre serviços no Azure Monitor. As ferramentas de visualização incluem o Mapa de Aplicativos no Azure Application Insight, o recurso Mapa do Azure Monitor para VMs, Pastas de Trabalho do Azure Monitor e várias exibições de painel disponíveis no Azure Monitor. Para obter mais informações, consulte Usar o recurso Mapa do Azure Monitor para VMs para entender os componentes do aplicativo, Criar e compartilhar painéis de dados do Log Analytics e Pastas de Trabalho do Azure Monitor.
  • Azure Monitor - Integrações. O Azure Monitor integra-se com uma variedade de ferramentas e extensões de parceiros e de terceiros. Essas ferramentas e extensões aprimoram e se baseiam na funcionalidade existente do Azure Monitor, como análise e visualizações.
  • Azure Monitor - Ações - Alertas. Variações nos dados métricos e de log podem indicar a ocorrência de eventos. As regras definem as variações de dados que disparam alertas, fornecem notificações e iniciam respostas de correção. Nessa arquitetura, quando um alerta é acionado, os runbooks de automação corrigem automaticamente as VMs locais e as VMs do Azure. Ações de Webhook, integração de gerenciamento de serviços e outros tipos de ação também estão disponíveis. Para obter mais informações, consulte Criar, exibir e gerenciar alertas de métricas usando o Azure Monitor e Criar, exibir e gerenciar alertas de log usando o Azure Monitor.
  • Azure Monitor - Ações - Dimensionamento automático. O dimensionamento automático adiciona ou remove instâncias de VM de acordo com o deman, o que mantém o desempenho e aumenta a relação custo-benefício. Nesta arquitetura, o Autoscale tem condições definidas em torno da carga média da CPU (em percentagem). Quando as condições forem atendidas, o Azure Monitor Autoscale ajustará a escala definida de acordo com a demanda. Para obter mais informações, consulte Visão geral do dimensionamento automático no Microsoft Azure.

Componentes

A arquitetura é composta pelos seguintes componentes:

Recomendações

As práticas recomendadas a seguir são recomendações que se aplicam à maioria dos cenários. Siga essas práticas, a menos que você tenha um requisito específico que as substitua.

Área de trabalho do Log Analytics

Considere as seguintes recomendações ao projetar o espaço de trabalho do Log Analytics:

  • Coloque o espaço de trabalho e os recursos na mesma região do Azure, se a latência for um fator importante.
  • Comece com um único espaço de trabalho do Log Analytics e aumente o número de espaços de trabalho à medida que os requisitos mudam.
  • Se você tiver equipes e recursos geograficamente dispersos, talvez precise de um espaço de trabalho por região.
  • Seu espaço de trabalho não precisa estar na mesma assinatura que os recursos que você está executando.

Alertas

Para cenários mais simples, você pode usar métricas para sinalizar alertas em vez de logs. Métricas:

  • Forneça uma contagem, ou valor numérico, para eventos como uso da CPU, memória disponível ou espaço em disco lógico.
  • Têm baixa latência.
  • Ofereça maior granularidade, por exemplo, intervalos por segundo ou por minuto.
  • Notifique-o rapidamente sobre um problema.

Para coletar indicadores de desempenho personalizados ou métricas específicas do negócio para fornecer insights mais profundos, use métricas personalizadas. Para obter mais informações, consulte Métricas personalizadas no Azure Monitor (Visualização).

Os alertas de métricas não são a resposta em todas as situações. Talvez você ainda queira usar alertas baseados em log quando precisar de mais personalização ou correlações mais poderosas.

Análise e Diagnóstico

Considere as seguintes recomendações para análise e diagnóstico:

  • Use logs para uma análise mais profunda. Os logs podem:

    • Forneça detalhes detalhados sobre eventos (em comparação com métricas).
    • Acontece intermitentemente.
    • Facilite diagnósticos mais profundos após um sinalizador de métrica inicial.
  • Personalize a coleta de dados de log (que é semelhante às métricas) usando a API do Coletor de Dados HTTP para enviar dados de log para um espaço de trabalho do Log Analytics. Para obter mais informações, consulte Enviar dados de log para o Azure Monitor com a API do Coletor de Dados HTTP (visualização pública).

  • Analise seus aplicativos proativamente com o recurso de deteção inteligente do Application Insight. A deteção inteligente aplica as capacidades de aprendizagem automática do Azure e a análise estatística para detetar problemas como anomalias de desempenho ou falhas, fugas de memória ou degradação geral da aplicação. Para obter mais informações, consulte Deteção inteligente no Application Insights.

  • Use o Azure Monitor for VMs - Map para revisar conexões entre servidores, processos, latência de conexão de entrada e saída e portas em qualquer arquitetura conectada a TCP. Nenhuma configuração é necessária além da instalação de um agente. Com o Azure Monitor for VMs - Map, você pode interagir e interagir com seus servidores como sistemas interconectados.

Consultas do Log Analytics

Consulte os dados em um espaço de trabalho do Log Analytics usando o KQL para pesquisar termos, eventos específicos ou estados para identificar tendências e analisar padrões. Use o Gerenciador de consultas para procurar e selecionar consultas pré-escritas, modificá-las ou criar as suas. Você pode executar, salvar, compartilhar e exportar consultas de dentro de um espaço de trabalho e fixar suas consultas favoritas em um painel para reutilização.

Instalação do agente

Instale agentes automaticamente e em escala, em vez de individualmente, usando opções de automação como Política do Azure, Azure PowerShell, modelos do Gerenciador de Recursos ou Configuração de Estado Desejado (DSC). Para obter mais informações, consulte Habilitar o Azure Monitor para VMs usando a Política do Azure, Habilitar o Azure Monitor para VMs usando o Azure PowerShell e Habilitar o Azure Monitor para VMs para uma máquina virtual híbrida - Configuração de Estado Desejado.

Dashboard

Para aplicativos críticos, crie um modo de exibição do Painel do Azure . Compartilhe ou disponibilize seu painel em uma tela compartilhada, em tempo real, para pessoas que precisam de dados críticos de aplicativos.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser usados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.

Fiabilidade

A confiabilidade garante que seu aplicativo possa atender aos compromissos que você assume com seus clientes. Para obter mais informações, consulte Visão geral do pilar de confiabilidade.

As considerações a seguir ajudam a garantir a disponibilidade em seu ambiente.

  • Testes de disponibilidade. O teste de ping de URL usado nessa arquitetura é o teste de disponibilidade externa mais simples. No entanto, outras opções estão disponíveis, tais como:
    • Teste web em várias etapas. Reproduz gravações de solicitações da Web seqüenciadas para testar cenários complexos. Testes da Web de várias etapas são criados no Microsoft Visual Studio Enterprise e, em seguida, carregados no portal para execução.
    • Testes personalizados de disponibilidade de faixa. Use o método para enviar resultados de teste para o TrackAvailability() Application Insights.
  • Alertas. Quando você cria um teste de disponibilidade no Application Insights, as notificações de alerta de eventos são habilitadas por padrão. Você pode editar as regras de alerta especificando o tipo e os detalhes da notificação em Alertas do Azure Monitor>.

Segurança

A segurança oferece garantias contra ataques deliberados e o abuso de seus valiosos dados e sistemas. Para obter mais informações, consulte Visão geral do pilar de segurança.

Os itens a seguir são considerações para tornar seu ambiente mais seguro.

  • Espaço de trabalho do Log Analytics. Os modos de acesso são definidos como um dos seguintes contextos:
    • Contexto do espaço de trabalho. Todos os logs que o espaço de trabalho tem permissão para acessar podem ser consultados. Trata-se de uma abordagem de acesso vertical. Por exemplo, uma equipe de segurança pode precisar de acesso a todos os dados de recursos de cima para baixo.
    • Contexto do recurso. Somente logs para recursos específicos podem ser consultados. Por exemplo, uma equipe de aplicativos pode ter acesso a logs para o recurso específico em que está trabalhando.
  • Proteja os dados em trânsito para o Log Analytics. Os dados em trânsito são protegidos usando o Transport Layer Security (TLS) mínimo 1.2. Não é necessário ativar esse recurso explicitamente. Para obter mais informações, consulte Segurança de dados do Log Analytics.
  • Proteja os dados em repouso no Log Analytics. Os dados em repouso no Log Analytics são protegidos, de acordo com o Armazenamento do Azure, usando a criptografia AES (Advanced Encryption Standard) de 256 bits por padrão.
  • Deteção inteligente. Use a Deteção Inteligente no Application Insights para analisar a telemetria gerada pelo seu aplicativo e detetar problemas de segurança. Para obter mais informações, consulte Pacote de deteção de segurança de aplicativos (visualização).
  • Integre o Azure Monitor com ferramentas de Gerenciamento de Informações e Eventos de Segurança (SIEM). Encaminhe seus dados de monitoramento para um hub de eventos com o Azure Monitor para integrar SIEM externo e ferramentas de monitoramento. Para obter mais informações, consulte Transmitir dados de monitoramento do Azure para um hub de eventos ou parceiro externo.

Otimização de custos

A otimização de custos consiste em procurar formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custos.

Os itens a seguir são considerações para controlar e gerenciar custos em seu ambiente.

  • Azure Monitor. Os custos do Azure Monitor são baseados no consumo, muitas vezes referidos como pay as you go.
  • Log Analytics. Você paga pela ingestão e retenção de dados. Você pode estimar e prever o número de VMs e a quantidade de dados (em gigabytes) que espera coletar de cada VM. Uma VM típica do Azure consome entre 1 gigabyte (GB) e 3 GB de dados por mês. Se você estiver avaliando o uso de dados com logs do Azure Monitor, use as estatísticas de dados de seu próprio ambiente e obtenha um desconto com reservas de Capacidade.
  • Application Insights. Esse componente é cobrado de acordo com o volume de dados de telemetria que seu aplicativo envia e o número de testes da Web executados.
  • Consultas métricas. As consultas métricas são cobradas pelo número de chamadas efetuadas.
  • Alertas. Os alertas são faturados com base no tipo e número de sinais monitorizados.
  • Notificações. As notificações são cobradas de acordo com o tipo e o número de notificações enviadas.
  • Azure Monitor. A seção Uso e custos estimados do Azure Monitor estima seus custos mensais com base nos 31 dias anteriores de uso.
  • Para obter mais informações, consulte Calculadora de preços e Preços do Azure Monitor.

Excelência operacional

A excelência operacional abrange os processos operacionais que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, consulte Visão geral do pilar de excelência operacional.

Capacidade de gestão

Veja a seguir considerações para tornar seu ambiente mais gerenciável.

  • Pastas de Trabalho do Azure. Use pastas de trabalho para ajudar a realizar análises adicionais e criar relatórios avançados. As pastas de trabalho combinam texto, consultas de log, métricas e parâmetros em relatórios interativos. Os membros da equipe com acesso aos mesmos recursos do Azure podem editar pastas de trabalho. Para obter mais informações, consulte Criar relatórios interativos Azure Monitor para VMs com pastas de trabalho.
  • Integrações de parceiros. Integre o Azure Monitor com ferramentas de parceiros e de terceiros para ajudar com análise, visualização, alertas ou Gerenciamento de Serviços e Pipelines do Azure. Para obter mais informações, consulte Integrações de parceiros do Azure Monitor.
  • Integre o Azure Monitor com o Microsoft System Center. Integre o Azure Monitor com o pacote de produtos do System Center. Para obter mais informações, consulte Conectar o Operations Manager ao Azure Monitor.
  • Envie dados para os Hubs de Eventos do Azure. Para integrar o Azure Monitor com ferramentas de visualização e monitoramento externo, consulte Transmitir dados de monitoramento do Azure para um hub de eventos ou parceiro externo.
  • Gateway do Log Analytics. Para ambientes menores, como a filial, use o agente para transferir dados para o espaço de trabalho do Log Analytics, em vez de para um gateway. Para obter mais informações, consulte Estabelecer conectividade com o Azure Log Analytics.

DevOps

Veja a seguir considerações para integrar seu ambiente com processos e soluções de DevOps.

  • Application Insights. Integre o Application Insights no Azure Pipelines para ajudar a melhorar o desempenho e a usabilidade. O Application Insights pode detetar anomalias de desempenho automaticamente. Ele se conecta a várias ferramentas de desenvolvimento, como Serviços de DevOps do Azure e GitHub.
  • Instrumentação de Aplicação. Instrumente aplicativos modificando o código do aplicativo para habilitar a telemetria com o Application Insights. Os seguintes métodos são formas de instrumentar aplicações:
    • Em tempo de execução. Instrumentar seu aplicativo Web no servidor em tempo de execução é ideal para aplicativos que já estão implantados, pois evita a necessidade de atualizar o código. Os cenários adequados incluem:
      • Aplicativos Microsoft ASP.NET ou ASP.NET Core hospedados em Aplicativos Web do Azure
      • ASP.NET aplicativos hospedados no Microsoft Internet Information Services (IIS) em uma máquina virtual ou conjunto de dimensionamento de máquina virtual
      • ASP.NET aplicativos hospedados no IIS em uma VM local
      • Azure Functions baseado em Java
      • Node.JS aplicativos nos Serviços de Aplicativos Linux
      • Microsserviços hospedados no AKS
    • No momento do desenvolvimento. Adicione o Application Insights ao seu código para personalizar a coleta de telemetria e enviar mais dados. Os idiomas e plataformas suportados incluem:
      • Aplicações ASP.NET
      • ASP.NET Aplicações principais
      • Aplicativos de console .NET
      • Java
      • Node.js
      • Python
  • Use o IT Service Management Connector (ITSMC) para se conectar a ferramentas externas de Gerenciamento de Serviços de TI (ITSM). O ITSMC conecta o Azure a produtos e serviços ITSM suportados, onde normalmente residem itens de trabalho relacionados a problemas. Para obter mais informações, consulte Conectar o Azure às ferramentas ITSM usando o IT Service Management Connector.

Eficiência de desempenho

Eficiência de desempenho é a capacidade de sua carga de trabalho de escalar de maneira eficiente para atender às demandas que seus usuários colocam nela. Para obter mais informações, consulte Visão geral do pilar de eficiência de desempenho.

A seguir estão as considerações para dimensionar seu ambiente.

  • Automatize a instalação e configuração de seus recursos e aplicativos.
  • Aplicações geograficamente dispersas em larga escala. Use o Rastreamento Distribuído no Application Insights para rastrear dependências e chamadas em vários componentes de aplicativos, recursos de back-end e ambientes de microsserviços. Com o Distributed Tracing você pode depurar aplicativos que chamam além dos limites do processo, fora da pilha local. (Não é necessário ativar Rastreamento distribuído, ele está disponível automaticamente como parte do App Insights.)
    • Duas opções para consumir dados de rastreamento distribuídos são:
      • Experiência em diagnóstico de transações. Essa experiência é semelhante a uma pilha de chamadas com uma dimensão de tempo adicional. A experiência de diagnóstico de transações fornece visibilidade em uma única transação/solicitação. É útil para encontrar a causa raiz de problemas de confiabilidade e gargalos de desempenho por solicitação. Para obter mais informações, consulte O que é o rastreamento distribuído?
      • Experiência de mapa de aplicação. Isso agrega muitas transações para demonstrar como os sistemas interagem topologicamente e fornecem taxas médias de desempenho e erro. Para obter mais informações, consulte Mapa de aplicativos: triagem de aplicativos distribuídos.

Próximos passos

Saiba mais sobre as tecnologias de componentes:

Explore arquiteturas relacionadas: