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

Criado por Ram Kandaswamy (AWS)

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 análises e alertas automatizados de registros, você pode identificar e responder rapidamente aos problemas de aplicativos em seu ambiente de produção.

Os registros desempenham um papel crucial no monitoramento do comportamento do sistema, na identificação de problemas e na garantia de um desempenho ideal. Durante um processo de migração, os arquivos de log são inestimáveis para validar o funcionamento do sistema no novo ambiente, detectar problemas de compatibilidade e identificar comportamentos inesperados. Os problemas podem estar relacionados às operações ou à segurança. Para problemas relacionados à segurança, permitir a detecção precoce de tentativas de acesso não autorizado ou atividades suspeitas é essencial para manter a segurança e a conformidade regulatória. Esse recurso é especialmente importante ao lidar com dados confidenciais ou sistemas críticos.

Esse padrão é particularmente valioso para equipes que precisam manter a alta disponibilidade dos aplicativos e responder rapidamente aos problemas de produção. É relevante em vários setores e casos de uso. Por exemplo, em telecomunicações, ele permite a identificação rápida de configurações incorretas ou interrupções da rede e a detecção de caminhos de roteamento abaixo do ideal para identificar possíveis congestionamentos. No domínio da Internet das Coisas (IoT), os componentes do Greengrass podem publicar registros no CloudWatch, permitindo que essa técnica extraia detalhes relevantes do registro e os apresente em um painel abrangente.

Pré-requisitos e limitações

Pré-requisitos

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

  • Compreensão básica do formato de registro e dos padrões de exceção do aplicativo de produção

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

Limitações

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 cadeias de caracteres de padrões de pesquisa incluem “erro”, “exceção” 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

Épicos

TarefaDescriçãoHabilidades necessárias

Configurar permissões do IAM

Para configurar as permissões do IAM, faça o seguinte:

  1. Identifique as funções do IAM usadas pelo seu aplicativo para gravar registros e pelos usuários ou serviços que criarão painéis, consultas e alarmes.

  2. Para a função do aplicativo, adicione as seguintes ações e recursos de API 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 às políticas existentes, consulte Definir 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 registros, use qualquer 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 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:

  1. Abra o CloudWatch console.

  2. Navegue até Logs Insights.

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

    • Comece com um exemplo de consulta na seção Consultas.

    • Escreva uma consulta personalizada.

    • Modifique o seguinte exemplo de consulta:

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

      Essa consulta verifica o arquivo de log, extrai o registro de data e hora e o conteúdo da mensagem, filtra a palavra “exceção” (sem distinção entre maiúsculas e minúsculas) e conta 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, linhas e setores estão disponíveis, dependendo da necessidade da sua empresa. 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, você pode personalizar um widget para atender às 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 ver os resultados da consulta ou a consulta parece estar quebrada

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 registros que não criam fluxos de registros

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 create operação não será bem-sucedida sem essa permissão curinga.

Recursos relacionados