Editar

Monitorização de aplicações Web no Azure

Azure App Service
Azure Log Analytics
Azure Monitor

Este 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, muitas ferramentas e serviços funcionam com implantações do Azure. Neste cenário, escolhemos serviços prontamente disponíveis precisamente por serem fáceis de consumir. Outras opções de monitoramento são discutidas mais adiante neste artigo.

Arquitetura

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

Este cenário usa um ambiente gerenciado do Azure para hospedar um aplicativo e uma camada de dados. Os dados fluem através do cenário da seguinte maneira:

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

Componentes

  • O Serviço de Aplicativo do Azure é um serviço PaaS para criar e hospedar aplicativos em máquinas virtuais gerenciadas. As infraestruturas de computação subjacentes nas quais seus 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 aplicativos, registro de informações de diagnóstico e alertas com base em métricas. Melhor ainda, você pode usar o Application Insights para criar testes de disponibilidade para testar seu aplicativo de diferentes regiões.
  • O Application Insights é um serviço extensível de Gerenciamento de Desempenho de Aplicativos (APM) para desenvolvedores e suporta várias plataformas. Ele monitora o aplicativo, deteta anomalias do aplicativo, como baixo desempenho e falhas, e envia telemetria para o portal do Azure. O Application Insights também pode ser usado para registro, rastreamento distribuído e métricas de aplicativos personalizadas.
  • O Azure Monitor fornece métricas e logs de infraestrutura de nível básico para a maioria dos serviços no Azure. Você pode interagir com as métricas de várias maneiras, incluindo mapeá-las no portal do Azure, acessá-las por meio da API REST ou consultá-las usando o PowerShell ou a CLI. O Azure Monitor também oferece seus dados diretamente no Log Analytics e em outros serviços, onde 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 logs de auditoria do SQL Server para o Log Analytics. Você pode escrever consultas e exibir dados na folha Análise de Log do portal do Azure.

Detalhes do cenário

As ofertas da plataforma Azure como serviço (PaaS) gerem recursos de computação para si e afetam a forma como monitoriza as implementações. O Azure inclui vários serviços de monitoramento, cada um dos quais executa uma função específica. Juntos, esses serviços fornecem uma solução abrangente para coletar, analisar e agir em telemetria de seus aplicativos e dos recursos do Azure que eles consomem.

Este 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, muitas ferramentas e serviços funcionam com implantações do Azure. Neste cenário, escolhemos serviços prontamente disponíveis precisamente por serem fáceis de consumir. Outras opções de monitoramento são discutidas mais adiante neste artigo.

Potenciais casos de utilização

Outros casos de uso relevantes incluem:

  • Instrumentação de uma aplicação web para monitorização de telemetria.
  • Coleta de telemetria front-end e back-end para um aplicativo implantado no Azure.
  • Monitoramento de métricas e cotas associadas a serviços no Azure.

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.

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.

Monitorização

Uma prática recomendada é adicionar o Application Insights ao seu código durante o desenvolvimento usando os SDKs do Application Insights e personalizando por aplicativo. Esses SDKs de código aberto estão disponíveis para a maioria das estruturas de aplicativos. Para enriquecer e controlar os dados coletados, incorpore o uso dos SDKs para implantações de teste e produção em seu processo de desenvolvimento. 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 voltado para a Internet. Em seguida, você pode adicionar telemetria ou enriquecer uma coleção de telemetria existente.

O monitoramento de tempo de execução é 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 tempo de execução que permitem que ferramentas como o Application Insights Status Monitor implantem os SDKs na pasta correta e adicionem as configurações corretas para iniciar o monitoramento.

Assim como o Application Insights, o Log Analytics fornece ferramentas para analisar dados entre fontes, criar consultas complexas e enviar alertas proativos em condições especificadas. Você também pode exibir 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. Você também pode usar consultas entre recursos para analisar a telemetria reunida 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 métricas no nível da plataforma, como a utilização da CPU, enquanto o Application Insights alerta sobre métricas no nível 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 configurados para usá-lo. Os alertas unificados no Azure Monitor são uma nova experiência de alerta unificada no Azure que usa uma taxonomia diferente.

Alternativas

Este artigo descreve opções de monitoramento convenientemente disponíveis com recursos populares, mas você tem muitas opções, incluindo a opção de criar seus próprios mecanismos de registro. Uma prática recomendada é adicionar serviços de monitoramento à medida que você cria camadas em uma solução. Aqui estão algumas extensões e alternativas possíveis:

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

Escalabilidade e disponibilidade

Este cenário se concentra em soluções PaaS para monitoramento em grande parte porque elas lidam convenientemente com disponibilidade e escalabilidade para você e são apoiadas por SLAs (Service Level Agreements, contratos de nível de serviço). Por exemplo, os Serviços de Aplicativo fornecem um SLA garantido para sua disponibilidade.

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

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

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.

Informações confidenciais e requisitos de conformidade afetam a coleta, retenção e 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 aplicadas:

  • Desenvolva um plano para lidar com informações pessoais se os desenvolvedores tiverem permissão para coletar seus próprios dados ou enriquecer a telemetria existente.
  • Considere a retenção de dados. Por exemplo, o Application Insights retém dados de telemetria por 90 dias. Arquive os dados aos quais você deseja acessar por períodos mais longos usando o Microsoft Power BI, a Exportação Contínua ou a API REST. Aplicam-se taxas de armazenamento.
  • Limite o acesso aos recursos do Azure para controlar o acesso aos dados e quem pode exibir a telemetria de um aplicativo específico. Para ajudar a bloquear o acesso à telemetria de monitoramento, consulte Recursos, funções e controle de acesso no Application Insights.
  • Considere se deve controlar o acesso de leitura/gravação no código do aplicativo para impedir que os usuários adicionem marcadores de versão ou de marca que limitem a ingestão de dados do aplicativo. Com o Application Insights, não há controle sobre itens de dados individuais depois que eles são enviados para um recurso, portanto, se um usuário tiver acesso a quaisquer dados, ele terá acesso a todos os dados em um recurso individual.
  • Adicione mecanismos de governança para impor controles de política ou de custo sobre os recursos do Azure, se necessário. Por exemplo, use o Log Analytics para monitoramento relacionado à segurança, como políticas e controle de acesso baseado em função, ou use a Política do Azure para criar, atribuir e gerenciar definições de política.
  • Para monitorizar potenciais problemas de segurança e obter uma vista central do estado de segurança dos seus recursos do Azure, considere utilizar o Microsoft Defender for Cloud.

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.

As taxas de monitoramento podem aumentar rapidamente. Considere a definição de preços antecipadamente, entenda o que você está monitorando e verifique as taxas associadas para cada serviço. O Azure Monitor fornece métricas básicas sem custos, enquanto os custos de monitoramento do Application Insights e do Log Analytics são baseados na quantidade de dados ingeridos e no número de testes executados.

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

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

Após a implantação, você pode assistir a um fluxo de métricas ao vivo de indicadores de desempenho. Esses dados não são armazenados — você está visualizando métricas em tempo real — mas a telemetria pode ser coletada e analisada posteriormente. Os dados de transmissão ao vivo são gratuitos.

O Log Analytics é cobrado por gigabyte (GB) de dados ingeridos para o serviço. Os primeiros 5 GB de dados ingeridos para o serviço Azure Log Analytics todos os meses são oferecidos gratuitamente e os dados são retidos gratuitamente durante os primeiros 31 dias na sua área de trabalho do Log Analytics.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

  • Shawn Gibbs - Brasil | Engenheiro de Software Principal

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

Próximos passos

Confira estes recursos criados para ajudá-lo a começar com sua própria solução de monitoramento: