Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a esta recomendação da lista de verificação de Excelência Operacional do Azure Well-Architected Framework:
| OE:07 | Crie uma pilha de monitoramento capaz de capturar telemetria operacional, métricas e logs da infraestrutura e do código da carga de trabalho para validar decisões de projeto e orientar melhorias futuras. |
|---|
A observabilidade ou monitoramento é uma prática operacional fundamental que fornece à equipe de carga de trabalho a capacidade de entender o estado interno de um sistema com base nos dados externos que ele produz. Ao contrário da pilha funcional, que implementa a lógica de negócios e os principais recursos, a pilha de monitoramento é executada em paralelo. Ele coleta e analisa métricas, logs, rastreamentos e eventos que mostram como as cargas de trabalho se comportam em condições reais.
Projetar a pilha de monitoramento exige um planejamento cuidadoso, pois oferece visibilidade de aspectos transversais, como confiabilidade, desempenho, segurança e custo. Uma pilha de monitoramento bem arquiteta permite detecção de problemas precoces, resposta efetiva a incidentes e decisões operacionais informadas. Ele forma a base para o gerenciamento proativo e o aprimoramento contínuo.
Este guia descreve as principais estratégias para criar uma pilha de monitoramento que dá suporte a funções de monitoramento, detecção e alerta. Para obter diretrizes de implementação, incluindo processos passo a passo e roteiros, consulte o artigo complementar: Construa um sistema de monitoramento para as cargas de trabalho do Azure.
Definições
| Termo | Definição |
|---|---|
| Telemetria | Um termo coletivo para logs, métricas, rastreamentos e eventos. A telemetria fornece a base para a observabilidade. |
| Logs | Eventos do sistema registrados que capturam o que aconteceu no sistema. Os logs podem ser estruturados ou de texto livre com carimbos de data/hora. Eles são úteis para detectar e investigar anomalias. |
| Metrics | Valores numéricos coletados em intervalos regulares que descrevem o desempenho do sistema. As métricas ajudam a identificar tendências de desempenho e confiabilidade da carga de trabalho. |
| Observabilidade | Uma prática que ajuda as equipes a detectar problemas, acompanhar tendências de desempenho e tomar decisões operacionais. |
| IDs de correlação | Identificadores exclusivos que rastreiam eventos relacionados em vários componentes para habilitar o rastreamento de ponta a ponta de transações em sistemas distribuídos. |
| Instrumentação | Adicionando recursos de monitoramento a aplicativos e infraestrutura para capturar telemetria. A telemetria capturada inclui registro em log, coleção de métricas e rastreamento. |
| Modelo de saúde | Uma estrutura para medir a integridade da carga de trabalho usando indicadores, KPIs e métricas que refletem os objetivos comerciais e operacionais. |
| Principais KPIs (indicadores de desempenho) | Valores mensuráveis que mostram a eficiência com que uma carga de trabalho atinge os objetivos operacionais e de negócios. Os KPIs orientam a coleta e análise de telemetria. |
| Gerenciamento de desempenho do aplicativo (APM) | Ferramentas e práticas para monitorar o desempenho do aplicativo, a disponibilidade e a experiência do usuário. As ferramentas do APM fornecem visibilidade histórica e em tempo real em métricas importantes. |
| Traces | Registros que mostram os caminhos das solicitações por meio de sistemas distribuídos. Os rastreamentos ajudam a diagnosticar problemas que abrangem vários serviços. |
Alinhar telemetria com modelos de saúde e KPI
Defina indicadores de integridade da carga de trabalho, KPIs e métricas de desempenho para que as estratégias de coleta de telemetria reflitam esses objetivos. Acompanhe esses indicadores para detectar anomalias para que você possa tomar decisões sobre a ação corretiva.
Vincule a telemetria a fluxos do sistema e do usuário e modele esses fluxos como entidades em seu modelo de saúde. Essa abordagem conecta a integridade no nível do aplicativo aos sinais de nível de recurso e à integridade geral da carga de trabalho, portanto, a degradação em uma dependência aparece no nível em que o impacto nos negócios é visível.
Oportunidade de IA: As equipes gastam tempo para definir manualmente KPIs e telemetria. As ferramentas assistidas por IA podem sugerir telemetria comumente usada com base na arquitetura, nas dependências de serviço e no código. Ferramentas como GitHub Copilot ou Claude Code também podem ajudar a adicionar instrumentação e gerar consultas ou modelos de IaC (infraestrutura como código). Inclua a supervisão humana para garantir que a observabilidade controlada por IA permaneça precisa e alinhada com os padrões.
Emitir telemetria de componentes de carga de trabalho
Capture sinais significativos do aplicativo, da infraestrutura e das operações. Registre exceções críticas com detalhes suficientes, mas permita que a verbosidade seja ajustada para controlar o ruído.
Prefira a telemetria estruturada para que os dados sejam consultáveis e pesquisáveis. Use esquemas consistentes e inclua informações contextuais como o componente de origem, carimbos de data/hora e assim por diante. Procure consistência porque isso permite uma análise mais precisa dos eventos e uma correlação mais clara com as solicitações do usuário. Para fazer isso, adote uma estrutura de registro em log configurável que padroniza como as informações são capturadas em todo o sistema.
Compensação: aumente os detalhes dos registros em log para melhorar a depuração e a rastreabilidade, mas lembre-se de que há custos de armazenamento e processamento mais altos. Para gerenciar essa compensação, use registros em log detalhados no desenvolvimento e sucintos na produção, e utilize IDs de correlação para manter a visibilidade das transações de ponta a ponta sem um volume excessivo de logs.
Tenha uma maneira de classificar a telemetria por preocupação operacional, como auditoria, segurança, depuração e desempenho, para simplificar a filtragem e impor controles de acesso adequados. Verifique se os dados da carga de trabalho não são misturados com telemetria. Remova informações confidenciais do sistema ou do usuário antes de registrar em log, preservando contexto suficiente para diagnósticos.
Verifique se as práticas de instrumentação são operacionalmente seguras. O registro em log deve ser do tipo "disparar e esquecer" para que não bloqueie operações de negócios, exceto para cenários críticos de auditoria. Mantenha a instrumentação extensível e desacoplada de back-ends específicos e assegure-se de que falhas na telemetria não resultem em falhas do aplicativo.
Trate a instrumentação como uma disciplina iterativa. Examine e refinar regularmente a telemetria para manter a clareza, a relevância e o desempenho à medida que o sistema evolui.
Observação
A criação de perfil de aplicativo pode ser outra maneira de analisar como um aplicativo em execução usa recursos do sistema, como CPU, memória, E/S de disco e rede. Uma ferramenta de análise é anexada ao seu aplicativo (durante o desenvolvimento ou em produção) e coleta dados detalhados de tempo de execução. Há duas abordagens: criação de perfil completa ou baseada em exemplo. O perfil completo é mais preciso, mas pode adicionar carga significativa e diminuir a velocidade do sistema. Opte por amostragem em que os dados são coletados com base no tempo, como uma vez a cada n segundos, ou na frequência, como uma vez a cada n solicitações. Se os eventos forem frequentes, use a amostragem para reduzir a sobrecarga. Se os eventos forem raros, use um perfilamento mais completo para não perdê-los.
Coletar telemetria em todo o ambiente de trabalho
Os sistemas de telemetria usam dois modelos de coleção fundamentais. Em um modelo de pull, um componente coleta telemetria consultando um sistema de destino. Em um modelo de push, os componentes emitem telemetria à medida que enviam dados para fora. Escolha um modelo com base em fatores que se aplicam à sua carga de trabalho. Por exemplo, instantâneos periódicos são suficientes ou você precisa de dados quase em tempo real? Qual é o volume de telemetria esperado? Qual é o tipo de dado: baseado em estado ou logs, eventos e rastreamentos?
É comum usar uma abordagem combinada. Por exemplo, os agentes de monitoramento podem usar um modelo de pull, em execução localmente ao lado de cada instância de aplicativo para coletar periodicamente dados e gravá-los no armazenamento compartilhado. Ao mesmo tempo, você pode usar um modelo de push para telemetria de aplicativo, em que cada instância emite logs, rastreamentos e métricas para uma fila de mensagens ou fluxo de eventos à medida que os eventos ocorrem.
Priorize a transferência de dados com base na importância. Dados menos urgentes podem ser transferidos em lotes, mas informações confidenciais devem ser enviadas imediatamente.
Padronizar a consolidação de dados
Mova a telemetria para fora dos silos locais e consolide-a em um repositório central, se isso for exigido pela organização. Para soluções de várias regiões, colete e armazene dados regionalmente primeiro e, em seguida, agrege-os centralmente. No entanto, para cargas de trabalho comercialmente críticas, recomendamos o armazenamento autônomo de dados.
Use formatos e métodos de coleta consistentes para que os dados possam ser acessados para análise, dashboards, alertas e relatórios. Evite a recuperação manual de componentes, pois ela adiciona sobrecarga e inconsistências.
Use os serviços de consolidação de dados para:
- Deduplicar dados.
- Mesclar eventos relacionados usando IDs de correlação.
- Filtrar informações desnecessárias.
Risco: Lembre-se de que há implicações de custo para ter armazenamentos de dados regionais e centralizados.
Personalizar o armazenamento e a retenção para padrões de uso
Selecione as soluções de armazenamento principalmente com base nas necessidades de consulta e nos padrões de acesso. Por exemplo, os dados que geram alertas devem ser acessados rapidamente, portanto, devem ser mantidos no armazenamento de dados rápido e indexados ou estruturados para otimizar as consultas.
Use a persistência poliglota para armazenar diferentes tipos de dados em tecnologias adequadas para seu uso:
- Bancos de dados SQL para contadores de desempenho
- Logs do Azure Monitor ou Azure Data Explorer para logs de rastreamento
- HdFS (Sistema de Arquivos Distribuído do Hadoop) para obter informações de segurança
Além disso, separe o armazenamento de dados por ambiente. Essa separação impede que dados de ambiente não críticos complicam o monitoramento de produção.
Planeje a retenção com base em como você usará os dados. Mantenha dados de alta resolução para análise e depuração de curto prazo e mantenha agregações de menor resolução para tendências de longo prazo. Mova dados mais antigos ou pouco acessados para um armazenamento mais barato e mantenha os dados recentes em sistemas mais rápidos para análise rápida. Isso equilibra o desempenho com o custo. Defina os períodos de retenção para corresponder às necessidades operacionais e aos requisitos de conformidade para que os dados fiquem disponíveis quando necessário sem sobrecarga de armazenamento desnecessária.
Trate os dados de monitoramento como qualquer outro dado crítico. Aplique a proteção apropriada: controle de acesso, exclusão reversível e proteções contra alterações acidentais.
Correlacionar dados para visão de ponta a ponta
Projete a observabilidade para conectar a telemetria de métricas, logs e rastreamentos em todos os componentes. Esse design permite o rastreamento distribuído de operações entre serviços, o que ajuda a diagnosticar problemas que abrangem várias camadas.
Use IDs de correlação consistentemente para rastrear transações por meio de camadas de apresentação, intermediárias e de dados.
Consolide logs em nível de aplicativo e de recurso para melhorar a resolução de problemas e acelerar a detecção de problemas. Considere uma solução unificada, como Azure Log Analytics, para consultar e analisar dados entre níveis.
Alinhe a telemetria com os fluxos do sistema e do usuário para correlacionar a integridade do fluxo com a integridade geral da carga de trabalho. Entender esses fluxos ajuda você a garantir que sua estratégia de observabilidade reflita tanto o comportamento no nível do componente quanto o comportamento do sistema de ponta a ponta.
Analisar e visualizar para dar suporte a decisões acionáveis
Crie painéis e relatórios baseados em modelos de integridade operacional. As visualizações devem permitir que as equipes identifiquem rapidamente problemas, entendam tendências e priorizem respostas.
Um modelo de saúde fornece a camada semântica entre a telemetria e as decisões operacionais. Em vez de painéis baseados em métricas, visualize estados de saúde que permitem detalhar da saúde no nível da carga de trabalho até os recursos individuais. Aproveite os modelos de integridade do Azure Monitor para obter visualizações integradas do estado de integridade em toda a hierarquia de entidades, além de acesso à API para integrar os dados de integridade a ferramentas como o Grafana.
Use padrões e arquiteturas de monitoramento comprovados em vez de implementações personalizadas ou soluções ad hoc. Verifique se os painéis são significativos e acionáveis. Os analistas podem usar painéis parametrizados para explorar dados subjacentes.
Para cargas de trabalho de banco de dados, avalie os painéis de monitoramento internos fornecidos pelos serviços de nuvem. Por exemplo, o Banco de Dados do Azure para PostgreSQL oferece painéis do Grafana integrados no portal do Azure por meio da integração com o Azure Monitor. Esses painéis mostram o uso da CPU, o armazenamento, as conexões ativas e a taxa de transferência de consulta com correlação de log, reduzindo a necessidade de implantações de monitoramento separadas.
Oportunidade de IA: Os painéis geralmente se concentram em métricas de negócios ou de engenharia. A IA pode analisar dados de todas as fontes relevantes e ajudá-lo a criar painéis integrados com as configurações e a visualização corretas. Esse design reduz o esforço manual e apresenta insights que, de outra forma, podem ser ignorados.
Definir alertas em torno de condições operacionais significativas
Defina alertas com base na saúde da carga de trabalho, não em valores arbitrários. Os alertas devem ser acionáveis e fornecer contexto. Estabeleça um processo de alerta claro e responsável que define proprietários, ações e escopo. Configure alertas com granularidade e verbosidade apropriadas para minimizar o ruído, garantindo que problemas críticos sejam detectados prontamente.
Use um modelo de integridade que agrega vários sinais correlacionados em estados de integridade e, em seguida, alerta sobre transições de estado, não limites de métrica isolados.
Valide os limites com base na experiência passada e nos testes regulares. Use o armazenamento rápido para gerar dados de alerta para habilitar a notificação rápida. Configure alertas para escopos bem definidos e ajuste a verbosidade para minimizar o ruído.
Automatizar alertas e vincular alertas a sistemas de gerenciamento de tíquetes. Monitore a integridade do serviço de plataforma de nuvem, interrupções, manutenção e avisos.
Ferramentas de operações habilitadas por IA como o Agente SRE do Azure podem analisar padrões de alerta e diagnosticar problemas comuns, como loops de falha de pods ou taxas de erro elevadas. Essas ferramentas dão suporte à autonomia configurável, começando com ações recomendadas e habilitando progressivamente respostas automatizadas dentro de limites definidos.
Oportunidade da IA: Você pode usar a IA para definir dinamicamente o comportamento "saudável" do sistema. Use a IA para aprender padrões em contextos de negócios, como tráfego de pico, promoções, períodos silenciosos e variações regionais. Em seguida, a IA pode analisar métricas, logs e dados de incidentes para prever problemas e recomendar limites.
Projetar pipelines de telemetria escalonáveis e duráveis
Os sistemas de observabilidade devem lidar com alta escala sem gargalos ou perda de dados. Inclua caminhos de ingestão escalável, enfileiramento e buffering para manter o fluxo de telemetria sob carga.
Utilize mecanismos de enfileiramento para ambientes em larga escala a fim de lidar com picos. Implemente a redundância para evitar a perda de dados importantes. Planeje o dimensionamento durante o design para garantir que os sistemas de monitoramento aumentem com as demandas de carga de trabalho.
Para cargas de trabalho complexas, use filas de mensagens com semântica at-least-once. Execute vários serviços de gravação em armazenamento para lidar com grandes volumes. Considere usar Hubs de Eventos do Azure para distribuir o processamento de telemetria e evitar gargalos de E/S de ponto único.
Usar a observabilidade para dar suporte a melhorias contínuas
Trate a observabilidade como um ciclo de feedback. Use dados de produção para refinar o design da carga de trabalho, a captura de telemetria e os limites de monitoramento.
Balancear a automação e a supervisão humana para garantir a precisão. Examine e evolua continuamente as abordagens de monitoramento à medida que as cargas de trabalho mudam. Use a telemetria para identificar oportunidades de otimização, validar decisões de arquitetura e orientar designs futuros.
Inclua monitoramento e alertas em testes gerais de carga de trabalho. Automatize funções mantendo a capacidade de analisar tendências para prever problemas operacionais e capacidade de planejamento.
Cuidado com antipadrões
Muitas falhas de monitoramento decorrem de escolhas arquitetônicas ruins em vez de limitações de ferramentas.
Não apenas corrija os sintomas, mas analise por que o antipadrão surgiu e resolva a fraqueza do design subjacente. Em seguida, aplique a mitigação, seja usando padrões de telemetria claros, direcionando-se para métricas alinhadas aos negócios ou promovendo a consciência de custos.
Recomendamos ler esta seção no guia de implementação complementar: Antipadrões e como evitá-los.
Facilitação do Azure
Azure Monitor é uma solução de monitoramento para coletar, analisar e responder a dados de monitoramento de seus ambientes locais e de nuvem.
Modelos de integridade do Azure Monitor ajudam a definir, medir e visualizar a integridade da carga de trabalho ao correlacionar métricas, logs e rastreamentos em estados de integridade acionáveis nos recursos e componentes do Azure.
Log Analytics é uma ferramenta no portal Azure que você pode usar para editar e executar consultas de log em relação aos dados no workspace Log Analytics.
Se você estiver usando vários workspaces, consulte o Log Analytics workspace architecture guide para obter práticas recomendadas.
Application Insights é uma extensão de Azure Monitor. Ele fornece recursos de APM.
Azure Monitor Insights são ferramentas de análise avançada para tecnologias de Azure específicas (como VMs, serviços de aplicativo e contêineres). Essas ferramentas fazem parte de Azure Monitor e Log Analytics.
Azure Monitor para soluções SAP é uma ferramenta de monitoramento Azure para cenários sap que são executados em Azure.
Azure Policy pode ajudá-lo a impor padrões organizacionais e avaliar a conformidade em escala.
Observador de Rede do Azure é uma ferramenta que monitora, gerencia e audita sua rede para garantir a segurança, a conformidade e o desempenho.
Diagnóstico de conexão é uma ferramenta de diagnóstico no Observador de Rede. Ele fornece PCAP (diagnóstico sob demanda e captura de pacotes) para ajudar a investigar problemas de conectividade.
Connection monitor é uma ferramenta de monitoramento no Observador de Rede. Ele executa testes sintéticos contínuos e envia alertas em tempo real para problemas de conectividade e desempenho.
Traffic analytics é uma solução de análise de tráfego no Observador de Rede. Ele visualiza a distribuição de tráfego, identifica os principais emissores e revela tendências de utilização de largura de banda. Esses recursos fornecem uma exibição unificada da integridade da rede.
Os logs de fluxo de rede virtual agora têm um conector nativo do Microsoft Sentinel que exporta a telemetria de rede para o SIEM da sua organização. Essa integração traz os dados de fluxo para o mesmo plano analítico que os sinais de identidade e de ponto de extremidade, o que melhora a correlação durante investigações de segurança. Controle os custos de análise e o volume de logs à medida que escala a ingestão.
Os alertas de log do Azure Monitor podem usar limiares dinâmicos baseados no comportamento histórico. Use-os para dimensionar a detecção de anomalias entre as linhas de base em alteração, mas valide os padrões sazonais e verifique se os respondentes sabem a ação esperada.
O Azure Functions conta com painéis integrados do Grafana que fornecem visões imediatas da saúde, sem necessidade de configuração personalizada. Use-os para acelerar a visibilidade inicial, mas ainda definir alertas, dashboards e runbooks controlados por SLO.
Aplicativos de Contêiner do Azure pode exportar dados OpenTelemetry para back-ends externos por meio de integrações gerenciadas. Padronize os destinos de forma deliberada e gerencie o roteamento, a retenção e o custo de ingestão antes de expandir a distribuição da telemetria.
Links relacionados
- Guia de instrumentação
- Recomendações para projetar uma estratégia confiável de monitoramento e alerta
- Recomendações para monitoramento e detecção de ameaças
- Recomendações para coletar dados de desempenho
Links da comunidade
- Azure Monitor AMBA (Alertas de Linha de Base) é um repositório central de definições de alerta que clientes e parceiros podem usar para melhorar sua experiência de observabilidade por meio da adoção de Azure Monitor.
Lista de verificação de Excelência Operacional
Consulte o conjunto completo de recomendações.