Monitore a atividade do aplicativo usando o CloudWatch Logs Insights - Recomendações da AWS

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á.

Monitore a atividade do aplicativo usando o CloudWatch Logs Insights

Ram Kandaswamy, Amazon Web Services

Resumo

Esse padrão fornece uma solução para detectar e alertar automaticamente sobre exceções de aplicativos usando o Amazon CloudWatch Logs Insights. Ao implementar a análise automatizada de logs e a geração de alertas, é possível identificar e responder rapidamente a problemas relacionados à aplicação em seu ambiente de produção.

Os logs desempenham um papel essencial no monitoramento do comportamento do sistema, na identificação de problemas e na garantia de uma performance ideal. Durante um processo de migração, os arquivos de log são indispensáveis para validar o funcionamento do sistema no novo ambiente, detectar problemas de compatibilidade e identificar quaisquer comportamentos inesperados. Os problemas podem estar relacionados às operações ou à segurança. Para problemas relacionados à segurança, é essencial habilitar a detecção antecipada de tentativas de acesso não autorizado ou atividades suspeitas para manter a segurança e a conformidade regulatória. Essa funcionalidade se torna particularmente relevante quando se trata de dados sensíveis ou sistemas críticos.

Esse padrão é particularmente valioso para equipes que precisam fazer o seguinte:

  • Mantenha a alta disponibilidade dos aplicativos.

  • Responda rapidamente aos problemas de produção.

  • Analise erros específicos do aplicativo não capturados pelos registros. AWS service (Serviço da AWS)

  • Execute análises de registros sob demanda sem infraestrutura pré-construída.

CloudWatch O Logs Insights é ideal para analisar registros gerados por aplicativos em que o contexto de erro existe somente no código do aplicativo. CloudWatch O Logs Insights se destaca nas seguintes tarefas:

  • Consulte dados de log não estruturados ou semiestruturados.

  • Realize análises sob demanda durante a resposta a incidentes.

  • Correlacione eventos em vários grupos de registros.

  • Crie visualizações rápidas sem ferramentas externas.

Pré-requisitos e limitações

Pré-requisitos

  • Um aplicativo de produção implantado no ativo Conta da AWS

  • Noções básicas sobre o formato de registro em log e os padrões de exceção da aplicação em produção

  • Logs de aplicativos configurados para serem transmitidos para o Amazon CloudWatch Logs

Limitações

  • Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte AWS Services by Region. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.

Arquitetura

O diagrama a seguir mostra como o CloudWatch Logs Insights avalia os registros de recursos e envia uma visualização de dados relevante para um CloudWatch painel.

CloudWatch O Logs Insights avalia os registros de recursos e envia a visualização de dados para o painel.

O diagrama mostra o seguinte fluxo de trabalho:

  1. Os recursos publicam registros no CloudWatch Logs. Os recursos podem incluir AWS recursos como instâncias do Amazon Elastic Compute Cloud (Amazon EC2) ou buckets do Amazon Simple Storage Service (Amazon S3). Outro exemplo inclui sistemas locais com o CloudWatch Agente instalado que podem publicar CloudWatch registros em.

  2. CloudWatch O Logs Insights filtra a sequência de padrões relevante. Exemplos de strings de padrão de pesquisa incluem “error”, “exception” ou uma expressão regular específica.

  3. Normalmente, a equipe de suporte de produção ou os desenvolvedores adicionam a visualização do padrão ao CloudWatch painel.

Automação e escala

Os desenvolvedores podem automatizar a solução desse padrão usando o AWS Cloud Development Kit (AWS CDK) AWS CloudFormation, ou AWS SDKs para lidar com vários padrões de string. As equipes podem incorporar essa automação em seus processos de integração e implantação contínuas (CI/CD) DevOps .

Ferramentas

Serviços da AWS

Práticas recomendadas

Eficiência de consulta

  • Defina e configure grupos de logs para analisar dados de log relevantes.

  • Use exploradores de campos para compreender a estrutura e os campos disponíveis nos seus dados de log.

  • Escreva consultas eficientes usando a sintaxe de consulta do CloudWatch Logs Insights.

  • Adapte as consultas de amostra aos seus requisitos específicos para uma análise mais rápida.

  • Limite os intervalos de tempo de consulta para reduzir os dados digitalizados e melhorar o desempenho.

  • Salve as consultas para uso futuro, economizando tempo e garantindo uma análise consistente.

Segurança

Otimização de custos

  • CloudWatch O Logs Insights cobra por GB de dados digitalizados por consulta. Limite os intervalos de tempo e segmente grupos de registros específicos para reduzir custos.

  • Configure políticas apropriadas de retenção de registros para gerenciar os custos de armazenamento.

  • Para uma análise frequente de grandes conjuntos de dados históricos, considere exportar logs para o Amazon S3 e usar o Amazon Athena.

  • Analise CloudWatch os preços para entender as implicações de custo para seu caso de uso.

Épicos

TarefaDescriptionHabilidades necessárias

Configurar permissões do IAM

Para configurar as permissões do IAM, execute as seguintes etapas:

  1. Identifique os perfis do IAM usados pela sua aplicação para gravação de logs e pelos usuários ou serviços que criarão painéis, consultas e alarmes.

  2. Para o perfil da aplicação, adicione as seguintes ações de API e recurso a uma política:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  3. Para gerenciar CloudWatch recursos, adicione o seguinte a uma política:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutDashboard", "cloudwatch:GetDashboard", "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "cloudwatch:PutMetricAlarm" ], "Resource": "*" } ] }

Para obter informações sobre como criar políticas do IAM ou adicionar permissões a políticas existentes, consulte Defina permissões personalizadas do IAM com políticas gerenciadas pelo cliente e Editar políticas do IAM no Guia do usuário do IAM. Para obter mais informações, consulte Gerenciamento de identidade e acesso para Amazon CloudWatch Logs e referência de permissões de CloudWatch registros no Guia do usuário do Amazon CloudWatch Logs.

Administrador da AWS, AWS DevOps, administrador de sistemas da AWS, administrador de nuvem, arquiteto de nuvem, DevOps engenheiro

Criar um grupo de logs do

Para criar um grupo de logs, use uma das seguintes opções:

  • Crie ou abra um arquivo CloudFormation de modelo (formato YAML ou JSON) com uma extensão .yaml ou.json. (O código apresentado a seguir usa o formato YAML.) Adicione a seguinte definição de recurso à seção Recursos do seu modelo:

    MyLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: my-log-group

    Para obter mais informações, consulte Início rápido: use AWS CloudFormation para começar a usar CloudWatch os registros no Guia do usuário do Amazon CloudWatch Logs.

Administrador da AWS, AWS DevOps, administrador de sistemas da AWS, administrador de nuvem, arquiteto de nuvem, DevOps engenheiro

Gere uma consulta do CloudWatch Logs Insights.

Para criar e salvar uma consulta do CloudWatch Logs Insights, faça o seguinte:

  1. Abra o CloudWatch console.

  2. Acesse o Logs Insights.

  3. Crie sua consulta usando um dos seguintes métodos:

    • Comece com uma consulta de amostra fornecida na seção Consultas.

    • Elabore uma consulta personalizada.

    • Modifique a consulta de exemplo a seguir:

      fields @timestamp, @message | filter @message like /(?i)exception/|stats count() by bin(30s)

      Esta consulta verifica o arquivo de log, extrai o carimbo de data/hora e o conteúdo da mensagem, filtra pela palavra “exception” (ignorando maiúsculas e minúsculas) e contabiliza as ocorrências em intervalos de 30 segundos.

Administrador da AWS, AWS DevOps, administrador de sistemas da AWS, administrador de nuvem, arquiteto de nuvem, DevOps engenheiro

Crie uma visualização em um CloudWatch painel.

Para usar um CloudWatch painel para criar uma visualização, faça o seguinte:

  1. Abra o CloudWatch console e crie um CloudWatch painel (se você ainda não tiver um) ou abra um painel existente.

  2. Adicione sua visualização de monitoramento de exceções. Gráficos de barras, de linhas e de pizza estão disponíveis, dependendo da necessidade do seu negócio. Para obter mais informações, consulte Uso de widgets em CloudWatch painéis no Guia do usuário do Amazon CloudWatch Logs. Para visualizações de dados em tempo real, é possível personalizar um widget conforme suas necessidades.

Para obter mais informações sobre as opções e recursos do painel, consulte Uso de CloudWatch painéis da Amazon e Criação de CloudWatch painéis flexíveis com variáveis de painel no Guia do usuário do Amazon CloudWatch Logs.

Administrador da AWS, AWS DevOps, administrador de sistemas da AWS, administrador de nuvem, arquiteto de nuvem, DevOps engenheiro

Solução de problemas

ProblemaSolução

Não é possível visualizar os resultados da consulta ou a consulta parece estar com problemas

Comece com uma consulta funcional que foi modificada a partir de uma consulta de amostra. Faça pequenas alterações incrementais em partes da consulta (como um filtro ou campo) e aproveite o recurso gerador de consultas de CloudWatch registros.

Grupos de logs não conseguem criar fluxos de logs

Na política do IAM, certifique-se de que o recurso para as CreateLogGroupoperações CreateLogStreame as seja fornecido com um (*) valor de caractere curinga. A operação create não terá êxito sem essa permissão coringa.

Tempo limite de consulta ou desempenho lento

Reduza o intervalo de tempo, vise grupos de registros específicos ou simplifique a consulta. Padrões complexos de expressão regular (regex) e grandes intervalos de tempo aumentam o tempo de consulta.

Nenhum dado retornado para um intervalo de tempo válido

Verifique a seleção do grupo de registros e verifique se os registros estão sendo ingeridos (revise os fluxos de registros) e confirme se o padrão de filtro corresponde ao seu formato de registro.

Recursos relacionados