Solucionar problemas de uma rede usando métricas e logs do Observador de Rede

Concluído

Se desejar diagnosticar um problema rapidamente, você precisará entender as informações disponíveis nos logs do Observador de Rede do Azure.

Na sua empresa de engenharia, convém minimizar o tempo que leva para sua equipe diagnosticar e resolver qualquer problema de configuração de rede. Garanta que eles saibam quais informações estão disponíveis em quais logs.

Neste módulo, você se concentrará nos logs de fluxo, nos logs de diagnóstico e na análise de tráfego. Você aprenderá como essas ferramentas podem ajudar a solucionar problemas da rede do Azure.

Uso e cotas

É possível usar cada recurso do Microsoft Azure até a respectiva cota. Cada assinatura tem coas separadas e o uso é controlado por assinatura. Somente uma instância do Observador de Rede é necessária por assinatura por região. Essa instância fornece uma exibição do uso e das cotas para que você possa ver se corre risco de atingir alguma cota.

Para exibir informações de uso e de cota, acesse Todos os Serviços>Rede>Observador de Rede e, em seguida, selecione Uso e cotas. Você verá dados granulares com base no uso e no local do recurso. Os dados para as seguintes métricas são capturados:

  • Adaptadores de rede
  • NSGs (grupos de segurança de rede)
  • Redes virtuais
  • Endereços IP públicos

Aqui está um exemplo que mostra o uso e as cotas no portal:

Screenshot showing usage and quotas by using Network Watcher.

Logs

Os logs de diagnóstico de rede fornecem dados granulares. Você usará esses dados para entender melhor a conectividade e os problemas de desempenho. Há três ferramentas de exibição de log no Observador de Rede:

  • Logs de fluxo de NSG
  • Logs de diagnóstico
  • Análise de tráfego

Vamos examinar cada uma dessas ferramentas.

Logs de fluxo de NSG

Nos logs de fluxo do NSG, você pode exibir informações sobre o tráfego IP de entrada e saída em grupos de segurança de rede. Os logs de fluxo mostram os fluxos de entrada e saída por regra, de acordo com o adaptador de rede que o fluxo aplica. Os logs de fluxo de NSG mostram se o tráfego foi permitido ou negado com base nas informações de cinco tuplas capturadas. Essas informações incluem:

  • IP de origem
  • Porta de origem
  • IP de destino
  • Porta de destino
  • Protocolo

Este diagrama mostra o fluxo de trabalho que o NSG segue.

Screenshot showing the workflow that the NSG follows from inbound traffic to rule matches to allowing or denying a packet.

Os logs de fluxo armazenam dados em um arquivo JSON. Poderá ser difícil obter informações sobre esses dados pesquisando manualmente os arquivos de log, especialmente se você tiver uma implantação de infraestrutura grande no Azure. Use o Power BI para solucionar esse problema.

No Power BI, é possível visualizar os logs de fluxo NSG de vários modos. Por exemplo:

  • Principais locutores (endereço IP)
  • Fluxos por direção (entrada e saída)
  • Fluxos por decisão (permitido e negado)
  • Fluxos por porta de destino

Também é possível usar ferramentas open-source para analisar os logs, como Elastic Stack, Grafana e Graylog.

Observação

Os logs de fluxo do NSG não dão suporte a contas de armazenamento no portal clássico do Azure.

Logs de diagnóstico

No Observador de Rede, os logs de diagnóstico são um local central para habilitar e desabilitar logs para recursos de rede do Azure. Esses recursos poderão incluir: NSGs, IPs públicos, balanceadores de carga e gateways de aplicativos. Depois de habilitar os logs que lhe interessam, você poderá usar as ferramentas para consultar e exibir entradas de log.

É possível importar logs de diagnóstico para o Power BI e outras ferramentas a fim de analisá-los.

Análise de tráfego

Use a análise de tráfego para investigar a atividade de usuários e aplicativos em suas redes de nuvem.

A ferramenta fornece insights sobre a atividade de rede entre assinaturas. É possível diagnosticar ameaças à segurança, como portas abertas, VMs que se comunicam com redes ruis conhecidas e padrões de fluxo de tráfego. A análise de tráfego analisa os logs do fluxo de NSG entre regiões e assinaturas do Azure. É possível usar os dados para otimizar o desempenho da rede.

Essa ferramenta requer o Log Analytics. O workspace do Log Analytics deve existir em uma região compatível.

Cenários de caso de uso

Agora, vamos examinar alguns cenários de casos de uso em que as métricas e os logs do Observador de Rede do Azure poderão ser úteis.

Relatórios de desempenho lento do cliente

Para resolver o desempenho lento, precisamos determinar a causa raiz do problema:

  • Há excesso de tráfego limitando o servidor?
  • O tamanho da VM é apropriado para o trabalho?
  • Os limites de escalabilidade estão definidos adequadamente?
  • Algum ataque mal-intencionado está acontecendo?
  • A configuração de armazenamento da VM está correta?

Primeiro, verifique se o tamanho da VM é apropriado para o trabalho. Em seguida, habilite o Diagnóstico do Azure na VM para obter dados mais granulares para métricas específicas, tais como uso de CPU e uso de memória. Para habilitar o diagnóstico de VM por meio do portal, vá para a VM, selecione Configurações de Diagnóstico e ative o diagnóstico.

Vamos supor que você tenha uma VM que esteja em execução sem enfrentar problemas. No entanto, o desempenho da VM degradou-se recentemente. Para identificar se você tem gargalos de recursos, é necessário examinar os dados capturados.

Comece com um intervalo tempo de dados capturados antes, durante e após o problema relatado para obter uma visão precisa do desempenho. Esses grafos também podem ser úteis para a referência cruzada de diferentes comportamentos de recurso no mesmo período. Você estará em busca de:

  • Gargalos de CPU
  • Gargalos de memória
  • Gargalos de disco

Gargalos de CPU

Ao examinar problemas de desempenho, é possível verificar as tendências para saber se elas afetam o servidor. No portal, use gráficos de monitoramento para identificar tendências. Você pode ver diferentes tipos de padrões nos grafos de monitoramento:

  • Picos isolados. Um pico pode estar relacionado a uma tarefa agendada ou a um evento esperado. Se você souber o que é essa tarefa, responda: ela é executada no nível de desempenho necessário? Se o desempenho estiver satisfatório, talvez não seja necessário aumentar a capacidade.
  • Pico ascendente e constante. Uma nova carga de trabalho poderia causar essa tendência. Habilite o monitoramento na VM para descobrir quais processos causam a carga. Um aumento do consumo poderá ocorrer devido a um código ineficiente ou ao novo consumo normal da carga de trabalho. Se o consumo estiver normal, o processo operará no nível de desempenho necessário?
  • Constante. Sua VM sempre foi assim? Se a resposta for sim, você deverá identificar os processos que consomem a maioria dos recursos e considerar a adição de capacidade.
  • Aumentando constantemente. Você vê um aumento constante no consumo? Se a resposta for sim, essa tendência poderá indicar código ineficiente ou um processo aceitando mais carga de trabalho de usuário.

Se observar alto uso da CPU, você poderá escolher uma destas duas opções:

  • Aumentar o tamanho da VM para dimensionar com mais núcleos.
  • Investigar o problema mais detalhadamente. Localize o aplicativo, bem como o processo e solucione problemas de modo adequado.

Caso escale verticalmente a VM e a CPU continue em execução acima de 95%, o desempenho do aplicativo será aprimorado ou a taxa de transferência do aplicativo será maior do que um nível aceitável? Caso contrário, solucione o problema desse aplicativo específico.

Gargalos de memória

É possível exibir a quantidade de memória que a VM usa. Os logs ajudarão você a entender a tendência e se ela é mapeada para a hora em que você encontra os problemas. Você nunca deve ter menos de 100 MB de memória disponível. Tome cuidado com as seguintes tendências:

  • Consumo com pico ascendente e constante. Alta utilização de memória pode não ser a causa do desempenho inadequado. Alguns aplicativos, como mecanismos de banco de dados relacionais, foram projetados para ter um uso intensivo de memória. No entanto, caso haja vários aplicativos consumindo muita memória, o desempenho poderá ser inadequado porque a contenção de memória causará a filtragem e a paginação do disco. Esses processos causarão um impacto negativo no desempenho.
  • Consumo aumentando constantemente. Essa tendência poderá indicar um aplicativo que está aquecendo. Isso é comum quando os mecanismos de banco de dados são iniciados. No entanto, ele também poderá ser um sinal de perda de memória em um aplicativo.
  • Uso do arquivo de paginação ou de permuta. Verifique se você está usando o arquivo de paginação do Windows com muita frequência ou verifique o arquivo de permuta do Linux, localizado em /dev/sdb.

Para resolver essa alta utilização de memória, considere estas soluções:

  • Para uma redução imediata do uso do arquivo de paginação, aumente o tamanho da VM para adicionar memória e, em seguida, monitore.
  • Investigar o problema mais detalhadamente. Localize o aplicativo ou processo que está causando o gargalo e solucione o problema. Caso conheça o aplicativo, confira se é possível limitar a alocação de memória.

Gargalos de disco

O desempenho da rede também pode estar relacionado ao subsistema de armazenamento da VM. Você pode investigar a conta de armazenamento para a VM no portal. Para identificar problemas de armazenamento, examine as métricas de desempenho do diagnóstico da conta de armazenamento e do diagnóstico da VM. Procure tendências-chave quando os problemas ocorrem em um intervalo de tempo específico.

  • Para verificar o tempo limite do Armazenamento do Azure, use as métricas ClientTimeOutError, ServerTimeOutError, AverageE2ELatency, AverageServerLatency e TotalRequests. Se você vir valores nas métricas TimeOutError, isso significará que uma operação de E/S demorou muito e atingiu o tempo limite. Se você vir AverageServerLatency aumentar ao mesmo tempo que o TimeOutErrors, isso poderá significar um problema de plataforma. Abra um caso junto ao suporte técnico da Microsoft.
  • Para verificar a limitação no Armazenamento do Azure, use a métrica de conta de armazenamento ThrottlingError. Se estiver enfrentando uma limitação, você atingiu o limite de IOPS da conta. É possível verificar esse problema investigando a métrica TotalRequests.

Para corrigir problemas de latência e alta utilização de disco:

  • Otimize a E/S da VM para dimensionar além dos limites de VHD (disco rígido virtual).
  • Aumente a taxa de transferência e reduza a latência. Caso descubra um aplicativo sensível à latência e que exija alta taxa de transferência, migre seus VHDs para o Armazenamento Premium do Azure.

Regras de firewall de máquina virtual que bloqueiam o tráfego

Para solucionar um problema de fluxo de NSG, use a ferramenta de verificação de fluxo de IP do Observador de Rede e registro em log do fluxo de NSG para determinar se um NSG ou UDR (Roteamento Definido pelo Usuário) está interferindo no fluxo de tráfego.

Execute a verificação de fluxo de IP e especifique a VM local e a VM remota. Após selecionar Verificar, o Azure executará um teste lógico nas regras em vigor. Se o resultado for que o acesso é permitido, use os logs de fluxo do NSG.

No portal, acesse os NSGs. Nas configurações de log do fluxo, selecione Ativado. Agora, tente se conectar à VM novamente. Use a análise de tráfego do Observador de Rede para visualizar os dados. Se o resultado for que o acesso é permitido, não haverá nenhuma regra de NSG no caminho.

Se você chegou a esse ponto e ainda não diagnosticou o problema, pode haver algo errado na VM remota. Desabilite o firewall na VM remota e teste novamente a conectividade. Se você conseguir se conectar à VM remota com o firewall desabilitado, verifique as configurações do firewall remoto. Em seguida, habilite novamente o firewall.

Incapacidade de comunicação entre sub-redes de front-end e back-end

Por padrão, todas as sub-redes podem se comunicar no Azure. Se duas VMs em duas sub-redes não conseguirem se comunicar, deverá haver uma configuração bloqueando a comunicação. Antes de verificar os logs de fluxo, execute a ferramenta de verificação de fluxo de IP da VM de front-end para a VM de back-end. Essa ferramenta executa um teste lógico nas regras na rede.

Caso o resultado seja um NSG na sub-rede de back-end bloqueando toda a comunicação, reconfigure-o. Para fins de segurança, você precisa bloquear alguma comunicação com o front-end, porque ele é exposto à Internet pública.

Ao bloquear a comunicação com o back-end, você limita a quantidade de exposição no caso de um ataque de malware ou de segurança. No entanto, se o NSG bloquear tudo, significa que ele estará configurado incorretamente. Habilite os protocolos e portas específicos necessários.