Monitoramento de aplicativos Web no Azure

Serviço de aplicativo do Azure
Azure Log Analytics
Azure Monitor

Esse cenário aborda os serviços de monitoramento que você pode usar e descreve um modelo de fluxo de dados para uso com várias fontes de dados. Quando se trata de monitoramento, várias ferramentas e serviços funcionam com implantações do Azure. Nesse cenário, escolhemos serviços prontamente disponíveis, pois eles são fáceis de usar. Outras opções de monitoramento serão discutidas mais adiante neste artigo.

Arquitetura

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

Esse cenário usa um ambiente do Azure gerenciado para hospedar um aplicativo e a camada de dados. O fluxo de dados neste cenário ocorre da seguinte forma:

  1. Um usuário interage com o aplicativo.
  2. O serviço de aplicativo e o navegador emitem a telemetria.
  3. O Application Insights coleta e analisa dados de integridade, de desempenho e de uso de aplicativos.
  4. Os desenvolvedores e administradores podem examinar informações de integridade, desempenho e uso.
  5. O Banco de Dados SQL do Azure emite telemetria.
  6. O Azure Monitor coleta e analisa cotas e métricas de infraestrutura.
  7. O Log Analytics coleta e analisa logs e métricas.
  8. Os desenvolvedores e administradores podem examinar informações de integridade, desempenho e uso.

Componentes

  • O Serviço de Aplicativo do Azure é um serviço de PaaS para compilar e hospedar aplicativos em máquinas virtuais gerenciadas. As infraestruturas de computação subjacentes em que os aplicativos são executados são gerenciadas para você. O Serviço de Aplicativo fornece monitoramento de cotas de uso de recursos e métricas de aplicativo, registro em log de informações de diagnóstico e alertas com base nas métricas. Melhor ainda, você pode usar o Application Insights para criar testes de disponibilidade para testar o aplicativo em diferentes regiões.
  • O Application Insights é um serviço de gerenciamento de desempenho de aplicativo (APM) extensível para desenvolvedores e dá suporte a várias plataformas. Ele monitora o aplicativo, detecta anomalias do aplicativo como falhas e baixo desempenho, e envia a telemetria ao portal do Azure. O Application Insights também pode ser usado para registro em log, rastreamento distribuído e métricas de aplicativo personalizadas.
  • O Azure Monitor fornece logs e métricas de infraestrutura de nível básico para a maioria dos serviços do Azure. Você pode interagir com as métricas de diversas maneiras, que incluem a criação de gráficos no portal do Azure, o acesso por meio da API REST ou as consultas por meio do PowerShell ou da CLI. O Azure Monitor também oferece seus dados diretamente no Log Analytics e outros serviços, em que você pode consultá-los e combiná-los com dados de outras fontes no local ou na nuvem.
  • O Log Analytics ajuda a correlacionar os dados de uso e desempenho coletados pelo Application Insights com dados de configuração e desempenho nos recursos do Azure que dão suporte ao aplicativo. Este cenário usa o agente do Azure Log Analytics para enviar por push logs de auditoria do SQL Server para o Log Analytics. Você pode escrever consultas e exibir dados na folha do Log Analytics no portal do Azure.

Detalhes do cenário

Ofertas de plataforma como serviço (PaaS) no Azure gerenciam recursos de computação para você e afetam como você monitora implantações. O Azure inclui vários serviços de monitoramento, e cada um realiza uma função específica. Juntos, esses serviços oferecem uma solução abrangente para coletar, analisar e agir na telemetria do seu aplicativo e os recursos do Azure que eles consomem.

Esse cenário aborda os serviços de monitoramento que você pode usar e descreve um modelo de fluxo de dados para uso com várias fontes de dados. Quando se trata de monitoramento, várias ferramentas e serviços funcionam com implantações do Azure. Nesse cenário, escolhemos serviços prontamente disponíveis, pois eles são fáceis de usar. Outras opções de monitoramento serão discutidas mais adiante neste artigo.

Possíveis casos de uso

Outros casos de uso relevantes incluem:

  • Instrumentação de um aplicativo Web para monitoramento de telemetria.
  • Coleta de telemetria de front-end e back-end para um aplicativo implantado no Azure.
  • Monitoramento de métricas e cotas associadas aos serviços no Azure.

Considerações

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

Excelência operacional

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

Monitoramento

Uma prática recomendada é adicionar o Application Insights ao código durante o desenvolvimento usando SDKs do Application Insights e personalizar por aplicativo. Esses SDKs de software livre estão disponíveis para a maioria das estruturas de aplicativo. Para enriquecer e controlar os dados coletados, incorpore ao seu processo de desenvolvimento o uso dos SDKs tanto para testes como para implantações na produção. O principal requisito é que o aplicativo tenha uma linha de visão direta ou indireta para o ponto de extremidade de ingestão do Applications Insights hospedado com um endereço na Internet. Você pode então adicionar telemetria ou enriquecer uma coleção de telemetria existente.

O monitoramento de runtime é outra maneira fácil de começar. A telemetria coletada deve ser controlada por meio de arquivos de configuração. Por exemplo, você pode incluir métodos de runtime que habilitam ferramentas como o Application Insights Status Monitor para implantar os SDKs na pasta correta e adicionar as configurações corretas para começar o monitoramento.

Como o Application Insights, o Log Analytics fornece ferramentas para analisar dados em diversas fontes, criar consultas complexas e enviar alertas proativos nas condições especificadas. Você também pode exibir a telemetria no portal do Azure. O Log Analytics agrega valor aos serviços de monitoramento existentes, como o Azure Monitor, e também pode monitorar ambientes locais.

O Application Insights e o Log Analytics usam a Linguagem de Consulta do Azure Log Analytics. Use também as consultas em diferentes recursos para analisar a telemetria coletada pelo Application Insights e pelo Log Analytics em uma única consulta.

O Azure Monitor, o Application Insights e o Log Analytics enviam alertas. Por exemplo, o Azure Monitor alerta sobre as métricas da plataforma, como utilização da CPU, enquanto o Application Insights alerta sobre as métricas do aplicativo, como o tempo de resposta do servidor. O Azure Monitor alerta sobre novos eventos no Log de Atividades do Azure, enquanto o Log Analytics pode emitir alertas sobre métricas ou dados de eventos para os serviços que estiverem configurados para usá-lo. Alertas unificados no Azure Monitor é uma nova experiência de alertas unificados no Azure que usa uma taxonomia diferente.

Alternativas

Este artigo descreve opções de monitoramento convenientemente disponíveis com recursos desejáveis. Você tem várias opções, incluindo a opção de criar seus próprios mecanismos de registro em log. Uma prática recomendada é adicionar os serviços de monitoramento conforme você compila as camadas em uma solução. Aqui estão algumas possíveis extensões e alternativas:

Para obter mais informações, veja Monitoramento para DevOps no Azure Well-Architected Framework.

Escalabilidade e disponibilidade

Esse cenário se concentra nas soluções de PaaS para o monitoramento, em grande parte porque elas administram a disponibilidade e a escalabilidade e contam com o suporte de SLAs (contratos de nível de serviço). Por exemplo, os Serviços de Aplicativos fornecem um SLA com garantia de disponibilidade.

O Application Insights tem limites para o número de solicitações que podem ser processadas por segundo. Se exceder o limite de solicitação, você poderá enfrentar a limitação de mensagens. Para evitar limitação, implemente filtragem ou amostragem para reduzir a taxa de dados

No entanto, considerações de alta disponibilidade para o aplicativo que você executa são responsabilidade do desenvolvedor. Para obter informações sobre escala, por exemplo, consulte as considerações de escalabilidade na arquitetura básica de referência de aplicativo Web. Depois que um aplicativo for implantado, você poderá configurar testes para monitorar sua disponibilidade usando o Application Insights.

Segurança

A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.

Os requisitos de conformidade e informações confidenciais afetam a coleta, a retenção e o armazenamento de dados. Saiba mais sobre como o Application Insights e o Log Analytics lidam com a telemetria.

As seguintes considerações de segurança também podem ser aplicáveis:

  • Se os desenvolvedores tiverem permissão para coletar seus próprios dados ou para enriquecer a telemetria existente, desenvolva um plano para administrar as informações pessoais.
  • Considere a possibilidade de retenção de dados. Por exemplo, o Application Insights retém dados de telemetria por 90 dias. Arquive dados que você deseja acessar por períodos mais longos usando o Microsoft Power BI, a Exportação Contínua ou a API REST. As taxas de armazenamento se aplicam.
  • Limite o acesso aos recursos do Azure para controlar o acesso a dados e quem pode exibir a telemetria de um aplicativo específico. Para ajudar a bloquear o acesso ao monitoramento de telemetria, confira Recursos, funções e controle de acesso no Application Insights.
  • Considere a possibilidade de controlar o acesso de leitura/gravação no código do aplicativo para impedir que usuários adicionem marcadores de versão ou marca que limitam a ingestão de dados do aplicativo. Com o Application Insights, não há controle sobre itens de dados individuais quando eles são enviados a um recurso. Portanto, se um usuário tem acesso a alguns dados, tem acesso a todos os dados em um recurso individual.
  • Adicione mecanismos de governança para impor a política ou controles de custo sobre recursos do Azure, se necessário. Por exemplo, use o Log Analytics para monitoramento de segurança, como políticas e controle de acesso baseado em função, ou use o Azure Policy para criar, atribuir e gerenciar definições de política.
  • Para monitorar potenciais problemas de segurança e obter uma visão central do estado de segurança dos seus recursos do Azure, considere usar o Microsoft Defender para Nuvem.

Otimização de custo

A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.

Os encargos de monitoramento podem se acumular rapidamente. Considere o preço com antecedência, entenda o que você está monitorando e verifique as taxas associadas a cada serviço. O Azure Monitor fornece métricas básicas sem custo, enquanto o monitoramento dos custos do Application Insights e do Log Analytics se baseia na quantidade de dados ingeridos e no número de testes que você executa.

Para ajudá-lo a começar, use a calculadora de preços para estimar os custos. Altere as várias opções de preço para corresponder à implantação esperada.

A telemetria do Application Insights é enviada ao portal do Azure durante a depuração e depois que você publica o aplicativo. Para fins de teste e para evitar cobranças, um volume limitado de telemetria é instrumentado. Para adicionar indicadores, você pode aumentar o limite de telemetria. Para obter um controle mais granular, confira Amostragem no Application Insights.

Após a implantação, você poderá assistir a um Live Metrics Stream dos indicadores de desempenho. Esses dados não são armazenados — você estará visualizando métricas em tempo real — mas a telemetria poderá ser coletada e analisada posteriormente. Não há custo para dados do Live Stream.

O Log Analytics é cobrado por GB (gigabyte) de dados ingeridos no serviço. Os primeiros 5 GB de dados ingeridos para o serviço Azure Log Analytics a cada mês são oferecidos gratuitamente, e os dados são retidos sem custo pelos primeiros 31 dias no espaço de trabalho do Log Analytics.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas

Confira estes recursos projetados para ajudar você a se familiarizar com sua própria solução de monitoramento: