Pesquisando e analisando registros CloudWatch - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Pesquisando e analisando registros CloudWatch

Depois que seus registros e métricas forem capturados em um formato e local consistentes, você poderá pesquisá-los e analisá-los para ajudar a melhorar a eficiência operacional, além de identificar e solucionar problemas. Recomendamos que você capture seus registros em um formato bem formado (por exemplo, JSON) para facilitar a pesquisa e a análise de seus registros. A maioria das cargas de trabalho usa uma coleção deAWS recursos, como rede, computação, armazenamento e bancos de dados. Sempre que possível, você deve analisar coletivamente as métricas e os registros desses recursos e correlacioná-los para monitorar e gerenciar com eficácia todas as suasAWS cargas de trabalho.

CloudWatch fornece vários recursos para ajudar a analisar registros e métricas, como o CloudWatch Application Insights para definir e monitorar coletivamente métricas e registros de um aplicativo em diferentesAWS recursos e a detecção de anomalias na superfície de seuCloudWatch métricas e CloudWatch Log Insights para pesquisar e analisar dados de log de modo interativo no CloudWatch Logs.

Monitore e analise coletivamente os aplicativos com o CloudWatch Application Insights

Os proprietários de aplicativos podem usar o Amazon CloudWatch Application Insights para configurar o monitoramento e a análise automáticos de cargas de trabalho. Isso pode ser configurado além do monitoramento padrão em nível de sistema configurado para todas as cargas de trabalho em uma conta. Configurar o monitoramento por meio do CloudWatch Application Insights também pode ajudar as equipes de aplicativos a se alinharem proativamente às operações e reduzir o tempo médio de recuperação (MTTR). CloudWatch O Application Insights pode ajudar a reduzir o esforço necessário para estabelecer registros e monitoramento em nível de aplicativo. Ele também fornece uma estrutura baseada em componentes que ajuda as equipes a dividir as responsabilidades de registro e monitoramento.

CloudWatch O Application Insights usa grupos de recursos para identificar os recursos que devem ser monitorados coletivamente como um aplicativo. Os recursos suportados no grupo de recursos se tornam componentes definidos individualmente do seu CloudWatch aplicativo Application Insights. Cada componente do seu CloudWatch aplicativo Application Insights tem seus próprios registros, métricas e alarmes.

Para registros, você define o conjunto de padrões de log que deve ser usado para o componente e dentro do seu CloudWatch aplicativo Application Insights. Um conjunto de padrões de log é uma coleção de padrões de log a serem pesquisados com base em expressões regulares, junto com uma severidade baixa, média ou alta para quando o padrão é detectado. Para métricas, você escolhe as métricas a serem monitoradas para cada componente em uma lista de métricas compatíveis e específicas do serviço. Para alarmes, o CloudWatch Application Insights cria e configura automaticamente alarmes padrão ou de detecção de anomalias para as métricas que estão sendo monitoradas. CloudWatch O Application Insights tem configurações automáticas para métricas e captura de registros para as tecnologias descritas nos registros e métricas suportadas pelo CloudWatch Application Insights na CloudWatch documentação. O diagrama a seguir mostra as relações entre os componentes do CloudWatch Application Insights e suas configurações de registro e monitoramento. Cada componente definiu seus próprios registros e métricas para monitorar usando CloudWatch registros e métricas.

CloudWatch O Application Insights tem configuração automática específica da tecnologia para métricas e captura de registros.

As instâncias do EC2 monitoradas pelo CloudWatch Application Insights exigem o Systems Manager, CloudWatch agentes e permissões. Para obter mais informações sobre isso, consulte Pré-requisitos para configurar um CloudWatch aplicativo com o Application Insights na CloudWatch documentação. CloudWatch O Application Insights usa o Systems Manager para instalar e atualizar o CloudWatch agente. As métricas e os registros configurados no CloudWatch Application Insights criam um arquivo de configuração do CloudWatch agente que é armazenado em um parâmetro do Systems Manager com oAmazonCloudWatch-ApplicationInsights-SSMParameter prefixo de cada componente do CloudWatch Application Insights. Isso resulta na adição de um arquivo de configuração de CloudWatch agente separado ao diretório de configuração do CloudWatch agente na instância do EC2. Um comando do Systems Manager é executado para acrescentar essa configuração à configuração ativa na instância do EC2. CloudWatch O uso do Application Insights não afeta as configurações existentes do CloudWatch agente. Você pode usar o CloudWatch Application Insights além de suas próprias configurações de sistema e CloudWatch agente em nível de aplicativo. No entanto, você deve garantir que as configurações não se sobreponham.

Realizando análise de registros com o CloudWatch Logs Insights

CloudWatch O Logs Insights facilita a pesquisa de vários grupos de registros usando uma linguagem de consulta simples. Se os registros do seu aplicativo estiverem estruturados no formato JSON, o CloudWatch Logs Insights descobrirá automaticamente os campos JSON em seus fluxos de log em vários grupos de registros. Você pode usar o CloudWatch Logs Insights para analisar os registros do aplicativo e do sistema, o que salva suas consultas para uso future. A sintaxe de consulta do CloudWatch Logs Insights oferece suporte a funções como agregação com funções, por exemplo, sum (), avg (), count (), min () e max (), que podem ser úteis para solucionar problemas de aplicativos ou análise de desempenho.

Se você usar o formato de métrica incorporado para criar CloudWatch métricas, poderá consultar seus registros de formato métrico incorporado para gerar métricas únicas usando as funções de agregação suportadas. Isso ajuda a reduzir seus custos de CloudWatch monitoramento ao capturar os pontos de dados necessários para gerar métricas específicas conforme necessário, em vez de capturá-las ativamente como métricas personalizadas. Isso é especialmente eficaz para dimensões com alta cardinalidade que resultariam em um grande número de métricas. CloudWatch O Container Insights também adota essa abordagem e captura dados detalhados de desempenho, mas gera CloudWatch métricas apenas para um subconjunto desses dados.

Por exemplo, a seguinte entrada de métrica incorporada gera somente um conjunto limitado de CloudWatch métricas a partir dos dados métricos capturados na declaração de formato de métrica incorporada:

{ "AutoScalingGroupName": "eks-e0bab7f4-fa6c-64ba-dbd9-094aee6cf9ba", "CloudWatchMetrics": [ { "Metrics": [ { "Unit": "Count", "Name": "pod_number_of_container_restarts" } ], "Dimensions": [ [ "PodName", "Namespace", "ClusterName" ] ], "Namespace": "ContainerInsights" } ], "ClusterName": "eksdemo", "InstanceId": "i-03b21a16b854aa4ca", "InstanceType": "t3.medium", "Namespace": "amazon-cloudwatch", "NodeName": "ip-172-31-10-211.ec2.internal", "PodName": "cloudwatch-agent", "Sources": [ "cadvisor", "pod", "calculated" ], "Timestamp": "1605111338968", "Type": "Pod", "Version": "0", "pod_cpu_limit": 200, "pod_cpu_request": 200, "pod_cpu_reserved_capacity": 10, "pod_cpu_usage_system": 3.268605094109382, "pod_cpu_usage_total": 8.899539221131045, "pod_cpu_usage_user": 4.160042847048305, "pod_cpu_utilization": 0.44497696105655227, "pod_cpu_utilization_over_pod_limit": 4.4497696105655224, "pod_memory_cache": 4096, "pod_memory_failcnt": 0, "pod_memory_hierarchical_pgfault": 0, "pod_memory_hierarchical_pgmajfault": 0, "pod_memory_limit": 209715200, "pod_memory_mapped_file": 0, "pod_memory_max_usage": 43024384, "pod_memory_pgfault": 0, "pod_memory_pgmajfault": 0, "pod_memory_request": 209715200, "pod_memory_reserved_capacity": 5.148439982463127, "pod_memory_rss": 38481920, "pod_memory_swap": 0, "pod_memory_usage": 42803200, "pod_memory_utilization": 0.6172094650851303, "pod_memory_utilization_over_pod_limit": 11.98828125, "pod_memory_working_set": 25141248, "pod_network_rx_bytes": 3566.4174629544723, "pod_network_rx_dropped": 0, "pod_network_rx_errors": 0, "pod_network_rx_packets": 3.3495665260575094, "pod_network_total_bytes": 4283.442421354973, "pod_network_tx_bytes": 717.0249584005006, "pod_network_tx_dropped": 0, "pod_network_tx_errors": 0, "pod_network_tx_packets": 2.6964010534762948, "pod_number_of_container_restarts": 0, "pod_number_of_containers": 1, "pod_number_of_running_containers": 1, "pod_status": "Running" }

No entanto, você pode consultar as métricas capturadas para obter mais informações. Por exemplo, você pode executar a seguinte consulta para ver os 20 pods mais recentes com falhas na página de memória:

fields @timestamp, @message | filter (pod_memory_pgfault > 0) | sort @timestamp desc | limit 20

Realizando análise de registros com o Amazon OpenSearch Service

CloudWatch integra-se com o Amazon OpenSearch Service, permitindo que você transmita dados de CloudWatch log de grupos de log para um cluster do Amazon OpenSearch Service de sua escolha com um filtro de assinatura. Você pode usar CloudWatch para captura e análise primárias de registros e métricas e, em seguida, aumentá-los com o Amazon OpenSearch Service para os seguintes casos de uso:

  • Controle refinado de acesso a dados — O Amazon OpenSearch Service permite que você limite o acesso aos dados até o nível do campo e ajuda a tornar os dados anônimos nos campos com base nas permissões do usuário. Isso é útil se você quiser oferecer suporte à solução de problemas sem expor dados confidenciais.

  • Agregue e pesquise registros em várias contas, regiões e infraestrutura — Você pode transmitir seus registros de várias contas e regiões para um cluster comum do Amazon OpenSearch Service. Suas equipes de operações centralizadas podem analisar tendências, problemas e realizar análises em todas as contas e regiões. O streaming de CloudWatch registros para o Amazon OpenSearch Service também ajuda você a pesquisar e analisar um aplicativo multirregional em um local central.

  • Envie e enriqueça registros diretamente para o Amazon OpenSearch Service usando ElasticSearch agentes — Seus componentes de aplicativos e pilhas de tecnologia podem usar sistemas operacionais que não são suportados pelo CloudWatch agente. Talvez você também queira enriquecer e transformar os dados de registro antes que eles sejam enviados para sua solução de registro. O Amazon OpenSearch Service oferece suporte a clientes padrão do Elasticsearch, como os remetentes de dados da família Elastic Beats e o Logstash, que oferecem suporte ao enriquecimento e à transformação de registros antes de enviar os dados de log para o Amazon OpenSearch Service.

  • A solução de gerenciamento de operações existente usa umaElasticSearch pilha Logstash, Kibana (ELK) para registro e monitoramento — talvez você já tenha um investimento significativo no Amazon OpenSearch Service ou no Elasticsearch de código aberto com muitas cargas de trabalho já configuradas. Você também pode ter painéis operacionais criados no Kibana e que você deseja continuar a usar.

Se você não planeja usar CloudWatch registros, pode usar agentes, drivers de log e bibliotecas compatíveis com o Amazon OpenSearch Service (por exemplo, Fluent Bit, Fluentd, logstash e Open Distro for ElasticSearch API) para enviar seus registros diretamente para o Amazon OpenSearch Service e ignorá-los CloudWatch. No entanto, você também deve implementar uma solução para capturar registros gerados pelosAWS serviços. CloudWatch O Logs é a principal solução de captura de registros para muitosAWS serviços e vários serviços criam automaticamente novos grupos de registros CloudWatch. Por exemplo, o Lambda cria um novo grupo de registros para cada função do Lambda. Você pode configurar um filtro de assinatura para que um grupo de registros transmita seus registros para o Amazon OpenSearch Service. Você pode configurar manualmente um filtro de assinatura para cada grupo de log individual que você deseja transmitir para o Amazon OpenSearch Service. Como alternativa, você pode implantar uma solução que inscreva automaticamente novos grupos de registros em ElasticSearch clusters. Você pode transmitir registros para um ElasticSearch cluster na mesma conta ou em uma conta centralizada. O streaming de registros para um ElasticSearch cluster na mesma conta ajuda os proprietários da carga de trabalho a analisar e dar suporte melhor às cargas de trabalho.

Você deve considerar a configuração de um ElasticSearch cluster em uma conta centralizada ou compartilhada para agregar registros em suas contas, regiões e aplicativos. Por exemplo,AWS Control Tower configura uma conta do Log Archive que é usada para registro centralizado. Quando uma nova conta é criada noAWS Control Tower, seusAWS Config registrosAWS CloudTrail e registros são entregues a um bucket do S3 nessa conta centralizada. O registro instrumentado peloAWS Control Tower é para registro de configuração, alteração e auditoria.

Para estabelecer uma solução centralizada de análise de registros de aplicativos com o Amazon OpenSearch Service, você pode implantar um ou mais clusters centralizados do Amazon OpenSearch Service em sua conta de registro centralizada e configurar grupos de registros em suas outras contas para transmitir registros para o Amazon OpenSearch Service centralizado. clusters.

Você pode criar clusters separados do Amazon OpenSearch Service para lidar com diferentes aplicativos ou camadas de sua arquitetura de nuvem que podem ser distribuídos em suas contas. O uso OpenSearch de clusters separados do Amazon Service ajuda a reduzir o risco de segurança e disponibilidade, e ter um cluster comum do Amazon OpenSearch Service pode facilitar a pesquisa e a relação de dados dentro do mesmo cluster.