Usar monitoramento e análise para obter insights operacionais
Digamos que você lidera uma equipe de operações responsável por recursos em execução no Azure. O que você faria para garantir a visibilidade da integridade dos sistemas? Se algo acontecer, quem descobre primeiro? Sua equipe ou seus usuários finais?
O monitoramento é o ato de coletar e analisar dados dos seus sistemas. Depois, você pode usar esses dados para determinar o desempenho, a integridade e a disponibilidade dos aplicativos de negócios e os recursos dos quais eles dependem. Uma estratégia de monitoramento efetiva ajuda a manter o foco na integridade do aplicativo. Também ajuda a aumentar o tempo de atividade, notificando sobre questões críticas proativamente para que você possa resolvê-las antes que se tornem problemas.
Quando se trata de monitoramento e análise no Azure, podemos agrupar serviços em três áreas específicas de foco:
- Monitoramento principal
- Monitoramento profundo de infraestrutura
- Monitoramento profundo de aplicativos
Nesta unidade, vamos analisar cada um desses pacotes e como os serviços do Azure habilitam essas funcionalidades em sua arquitetura. Mesmo que esses serviços estejam agrupados, ainda há vários pontos de integração entre eles, permitindo que você compartilhe pontos de dados de monitoramento importantes entre eles. A ilustração a seguir mostra os serviços de monitoramento disponíveis reunidos em grupos lógicos.
Monitoramento principal
O monitoramento principal fornece monitoramento necessário e fundamental nos recursos do Azure. Quando falamos de monitoramento fundamental, entenda isso como o que acontece com seus recursos no nível da plataforma do Azure. Essa área de foco oferece insights sobre assuntos como a integridade da plataforma do Azure, as alterações feitas nos recursos e as métricas de desempenho. O uso de serviços dessa área permite monitorar as partes básicas necessárias para manter o aplicativo em execução.
O Azure fornece serviços para dar visibilidade em quatro áreas de monitoramento principais: log de atividades, integridade de serviços, métricas e diagnósticos, e recomendações de melhores práticas.
Esses serviços são internos no Azure e precisam de pouca ou nenhuma configuração para serem habilitados e configurados. Vamos examinar mais detalhadamente cada um desses serviços.
Log de atividades
O log de atividades é uma fonte extremamente importante para obter informações sobre o que está acontecendo com seus recursos no nível da plataforma do Azure. Todas as alterações enviadas para a plataforma do Azure são controladas no log de atividades do Azure, oferecendo a capacidade de rastrear qualquer ação executada em seus recursos. O log de atividades contém informações detalhadas sobre as atividades para ajudar você a responder a perguntas como:
- Quem anexou um disco a esta máquina virtual?
- Quando esse computador foi desligado?
- Quem alterou a configuração do balanceador de carga?
- Por que a operação de dimensionamento automático no conjunto de dimensionamento de máquinas virtuais falhou?
O uso do log de atividades para responder a esses tipos de perguntas ajuda a solucionar problemas, acompanhar alterações e fornecer auditoria sobre o que está acontecendo no ambiente do Azure. Os dados do log de atividades são retidos por apenas 90 dias, mas é possível arquivar seus dados em uma conta de armazenamento ou enviá-los ao Azure Log Analytics para uma retenção mais longa e outras análises.
Integridade dos serviços de nuvem
Qualquer sistema pode ter problemas em algum momento e isso também vale para os serviços do Azure. Manter-se informado sobre a integridade dos serviços do Azure ajuda você a entender se e quando um problema que afeta um serviço do Azure está afetando o ambiente. O que pode parecer um problema localizado pode ser o resultado de um problema mais amplo, e a Integridade do Serviço do Azure fornece esse tipo de insight. A Integridade do Serviço do Azure identifica os problemas com os serviços do Azure que podem afetar seu aplicativo. A Integridade do Serviço também ajuda você a planejar para a manutenção agendada.
Métricas e diagnóstico
Para problemas que são mais localizados por natureza, é importante ter visibilidade sobre o que está acontecendo no sistema ou na instância de serviço. A capacidade de exibir as métricas e as informações de diagnóstico é crítica para solucionar problemas de desempenho e ser notificado quando algo dá errado. Para fornecer essa visibilidade, os serviços do Azure têm uma maneira comum de mostrar informações de integridade, métrica ou diagnóstico. O Azure Monitor permite o monitoramento principal dos serviços do Azure, permitindo a coleta, a agregação e a visualização de métricas, logs de atividades e logs de diagnóstico.
Há métricas disponíveis que fornecem estatísticas de desempenho de diferentes recursos e até mesmo do sistema operacional dentro de uma máquina virtual. É possível ver esses dados com um dos gerenciadores no portal do Azure e criar alertas com base nessas métricas. O Azure Monitor fornece um pipeline de métricas rápido, portanto, você deve usá-lo para notificações e alertas críticos em termos de tempo.
Recomendações sobre melhores práticas
Quando pensamos em monitoramento, normalmente pensamos na integridade atual de um recurso. Mas, mesmo quando um recurso está íntegro, pode haver ajustes que resultam em maior disponibilidade, redução de custo ou melhoria da segurança. O Assistente do Azure pode ajudar supervisionando possíveis problemas de desempenho, custo, alta disponibilidade ou segurança nos recursos. O Assistente faz recomendações personalizadas com base na configuração e na telemetria dos recursos e fornece diretrizes que as plataformas de monitoramento mais tradicionais não oferecem.
Monitoramento profundo de infraestrutura
Embora os componentes de monitoramento que abordamos até agora sejam ótimos para oferecer insights, eles somente oferecem visibilidade da plataforma do Azure. Para cargas de trabalho típicas de IaaS, há mais informações de diagnóstico e métricas a serem coletadas da rede ou dos sistemas operacionais reais. Por exemplo: O Log Analytics pode fornecer insights mais detalhados extraindo informações do SQL Server para assegurar que ele esteja configurado corretamente, analisar o espaço livre em disco em todos os servidores no ambiente ou visualizar as dependências de rede entre os sistemas e serviços.
Quando você projeta uma estratégia de monitoramento, é importante incluir todos os componentes da cadeia de aplicativos, para que seja possível correlacionar eventos entre serviços e recursos. Você pode, facilmente, configurar os serviços com suporte para o Azure Monitor para enviar dados a um workspace do Log Analytics. É possível instalar um agente nas máquinas virtuais (na nuvem e locais) para enviar dados ao Log Analytics. Você pode enviar dados personalizados ao Log Analytics por meio da API do Log Analytics. A ilustração a seguir mostra como o Log Analytics funciona como um hub central para o monitoramento de dados. O Log Analytics recebe dados de monitoramento dos recursos do Azure e torna esses dados disponíveis aos consumidores para análise ou visualização.
Com esses dados no Log Analytics, você pode consultar os dados brutos para fins de solução de problemas, identificação da causa raiz e auditoria. Para vários serviços conhecidos, como SQL Server, Windows Server Active Directory, há soluções de gerenciamento prontamente disponíveis que visualizam os dados de monitoramento e revelam a conformidade com as melhores práticas.
O Log Analytics permite que você crie consultas e interaja com outros sistemas com base nessas consultas. O exemplo mais comum é um alerta. É possível receber um email quando um sistema fica sem espaço em disco ou quando a melhor prática no SQL Server não é seguida. O Log Analytics pode enviar alertas, disparar a automação e até mesmo conectar-se a APIs personalizadas.
Monitoramento profundo de aplicativos
É importante entender como está o desempenho dos serviços principais e da infraestrutura, mas você pode aproveitar as funcionalidades de monitoramento ainda mais. Usando uma ferramenta de gerenciamento de desempenho do aplicativo para examinar os aplicativos detalhadamente, você pode identificar problemas de desempenho, tendências de uso e a disponibilidade geral dos serviços que você desenvolve e dos quais depende. Isso permite a você detectar e diagnosticar melhor os problemas que ocorrem em seus serviços e aplicativos Web.
O Azure Application Insights permite que você faça exatamente isso. O Application Insights fornece funcionalidades de telemetria, coleção, consulta e visualização. Instrumentar esse nível de monitoramento requer pouca ou nenhuma alteração de código; basta instalar um pacote de instrumentação pequeno em seu aplicativo. O Application Insights é multiplataforma, com suporte para Java, Node.js ou .NET.
Por exemplo, a solução de problemas no tempo de resposta de um de seus aplicativos pode ser complexa. Por exemplo: o servidor Web está sendo sobrecarregado? É uma consulta SQL específica não otimizada? É uma API que você está chamando e está mais lenta que o normal? As soluções de Monitoramento do desempenho de aplicativos podem ajudar a descobrir os problemas subjacentes que o monitoramento de métricas básico não consegue expor. A seguinte captura de tela mostra uma exibição gráfica dos detalhes de desempenho de um aplicativo fornecido pelo Azure Application Insights.
Uma solução de monitoramento de desempenho de aplicativos ajuda a monitorar o uso, o desempenho e a disponibilidade, permitindo que você responda a falhas com mais rapidez e deve estar incluída em qualquer estratégia de monitoramento.