0Pricing
AWS Solutions Architect · Aula

Registros e Log Insights do CloudWatch

Agregue registros do EC2, Lambda e contêineres em grupos de registros e execute consultas do CloudWatch Logs Insights para encontrar erros e padrões.

Registros e Log Insights do CloudWatch é uma aula grátis de AWS Solutions Architect no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AWS Solutions Architect, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AWS Solutions Architect inclui 4 aulas no total.

Visão geral do CloudWatch Logs

O Amazon CloudWatch Logs é um serviço totalmente gerenciado de agregação de registros que coleta, armazena e analisa dados de registros de serviços da AWS e de seus próprios aplicativos. Diferentemente do gerenciamento tradicional de registros, em que você usa SSH para acessar servidores e ler arquivos, o CloudWatch Logs centraliza todos os registros em um armazenamento durável e criptografado, com consulta, filtragem, extração de métricas e gerenciamento de retenção integrados. Ele se integra nativamente ao EC2, Lambda, ECS, EKS, API Gateway, CloudTrail e VPC Flow Logs.

Grupos de registros e fluxos de registros

Os registros são organizados hierarquicamente: um grupo de registros é um contêiner nomeado para registros que compartilham as mesmas configurações de retenção e controle de acesso (por exemplo, /aws/lambda/my-function). Dentro de um grupo de registros, cada fluxo de registros representa uma única fonte de eventos de registro sequenciais — uma instância do EC2, um contêiner do Lambda ou uma tarefa do ECS. Um grupo de registros pode ter milhares de fluxos, mas cada fluxo pertence exatamente a um único grupo de registros.

# Create a log group with 30-day retention
aws logs create-log-group \
  --log-group-name /myapp/production/api

aws logs put-retention-policy \
  --log-group-name /myapp/production/api \
  --retention-in-days 30

# List log streams in a group
aws logs describe-log-streams \
  --log-group-name /myapp/production/api \
  --order-by LastEventTime \
  --descending

Envio de registros do Lambda e do EC2

O AWS Lambda envia automaticamente toda a saída de stdout e stderr para o CloudWatch Logs — você só precisa incluir logs:CreateLogGroup, logs:CreateLogStream e logs:PutLogEvents na função de execução do Lambda. Para instâncias do EC2, você instala o CloudWatch Agent e configura quais arquivos de registro devem ser acompanhados (por exemplo, /var/log/nginx/access.log), em qual grupo de registros gravar e qual padrão identifica entradas individuais de registro.

# CloudWatch Agent config for tailing an application log file
# /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
# {
#   "logs": {
#     "logs_collected": {
#       "files": {
#         "collect_list": [{
#           "file_path": "/var/log/myapp/app.log",
#           "log_group_name": "/myapp/production/api",
#           "log_stream_name": "{instance_id}",
#           "timestamp_format": "%Y-%m-%dT%H:%M:%S"
#         }]
#       }
#     }
#   }
# }

CloudWatch Logs Insights

O CloudWatch Logs Insights é um mecanismo interativo de consultas que permite pesquisar e analisar dados de registros usando uma linguagem de consulta criada especificamente para essa finalidade. Você pode executar consultas em um ou mais grupos de registros, filtrar por intervalo de tempo, extrair campos de linhas de registro estruturadas ou não estruturadas, agregar dados e visualizar os resultados como gráficos de barras ou séries temporais. As consultas são executadas sob demanda e cobradas por GB de dados analisados — estruturar os registros como JSON reduz significativamente o volume analisado.

# Find the top 10 slowest Lambda invocations in the last hour
aws logs start-query \
  --log-group-name /aws/lambda/my-function \
  --start-time $(date -d '1 hour ago' +%s) \
  --end-time $(date +%s) \
  --query-string 'filter @type = "REPORT"
| fields @requestId, @duration
| sort @duration desc
| limit 10'

Linguagem de consulta do Logs Insights

A linguagem de consulta do Logs Insights usa comandos separados por barras verticais: fields seleciona quais campos exibir, filter restringe os eventos (com suporte a expressões regulares usando like e =~), stats agrega dados, sort ordena os resultados e limit limita o número de resultados. O serviço descobre automaticamente os campos em linhas de registro formatadas como JSON. Para registros não estruturados, você pode analisar valores usando parse com padrões globais ou de expressões regulares.

# Count errors by status code in the last 24 hours
fields @timestamp, @message
| filter @message like /ERROR/
| parse @message '* * * [*] "* *" * *' as host, user, datetime, request, method, status, bytes
| stats count(*) as errorCount by status
| sort errorCount desc
| limit 20

Filtros de métricas: de registros para métricas

Os filtros de métricas examinam continuamente os eventos de registro recebidos em busca de padrões e incrementam uma métrica personalizada do CloudWatch sempre que encontram uma correspondência. Por exemplo, você pode criar um filtro de métricas em um grupo de registros do Lambda que incremente uma métrica ErrorCount sempre que uma linha de registro contiver ERROR. Em seguida, você cria um alarme do CloudWatch nessa métrica para alertar sua equipe. Isso transforma seus registros em métricas acionáveis sem armazenar os resultados em um banco de dados separado.

# Create a metric filter that counts ERROR lines
aws logs put-metric-filter \
  --log-group-name /myapp/production/api \
  --filter-name ErrorCount \
  --filter-pattern 'ERROR' \
  --metric-transformations \
    metricName=ApplicationErrors,metricNamespace=MyApp,metricValue=1,defaultValue=0

# Now create an alarm on the resulting metric
aws cloudwatch put-metric-alarm \
  --alarm-name HighErrorRate \
  --metric-name ApplicationErrors \
  --namespace MyApp \
  --statistic Sum \
  --period 60 \
  --evaluation-periods 1 \
  --threshold 10 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:Ops

Assinaturas e transmissão de registros

Um filtro de assinatura transmite eventos de registro quase em tempo real para outro serviço, para processamento ou armazenamento. Você pode transmitir para o AWS Lambda (para transformar e encaminhar registros), o Amazon Kinesis Data Streams (para processamento de registros em grande volume) ou o Amazon Kinesis Firehose (para entregar registros ao S3, OpenSearch ou Splunk). Cada grupo de registros aceita até dois filtros de assinatura. A transmissão de registros entre contas exige um destino com uma política de recursos apropriada.

# Stream all logs containing ERROR to a Kinesis Firehose for S3 archiving
aws logs put-subscription-filter \
  --log-group-name /myapp/production/api \
  --filter-name ErrorsToFirehose \
  --filter-pattern 'ERROR' \
  --destination-arn arn:aws:firehose:us-east-1:111122223333:deliverystream/LogArchive \
  --distribution 'ByLogStreamName'

Políticas de retenção e gerenciamento de custos

Por padrão, o CloudWatch Logs armazena os dados indefinidamente, o que pode ser caro. Defina políticas de retenção em cada grupo de registros para excluir automaticamente eventos antigos. Períodos de retenção comuns são 7 dias para registros de depuração, 30 dias para registros de aplicativos e de 1 a 5 anos para registros de auditoria. Você pode exportar grupos de registros para o S3 para arquivamento de longo prazo e baixo custo usando a API create-export-task, embora as exportações sejam operações em lote, e não em tempo real.

# Set retention on all log groups that have no retention policy
aws logs describe-log-groups \
  --query 'logGroups[?!retentionInDays].logGroupName' \
  --output text | tr '\t' '\n' | while read lg; do
    aws logs put-retention-policy \
      --log-group-name "$lg" \
      --retention-in-days 90
    echo "Set 90-day retention on $lg"
done

VPC Flow Logs

VPC Flow Logs captura metadados sobre o tráfego IP que entra e sai de interfaces de rede na sua VPC, sub-redes ou ENIs individuais. Eles são armazenados no CloudWatch Logs ou no S3. Os logs de fluxo incluem IP de origem, IP de destino, porta, protocolo, contagem de pacotes, contagem de bytes, ação (ACCEPT ou REJECT) e carimbo de data e hora. Eles são inestimáveis para solucionar problemas nas regras de grupos de segurança e NACL, detectar varreduras de portas e auditar padrões de tráfego — mas NÃO capturam os dados reais dos pacotes.

# Enable VPC Flow Logs to CloudWatch Logs
aws ec2 create-flow-logs \
  --resource-ids vpc-0abc1234def567890 \
  --resource-type VPC \
  --traffic-type ALL \
  --log-destination-type cloud-watch-logs \
  --log-group-name /aws/vpc/flow-logs \
  --deliver-logs-permission-arn arn:aws:iam::111122223333:role/FlowLogsRole

Consulta aos VPC Flow Logs com o Insights

O CloudWatch Logs Insights é particularmente poderoso para a análise de VPC Flow Log. Você pode identificar rapidamente tráfego rejeitado, encontrar os maiores emissores por volume de bytes, detectar conexões incomuns ou isolar o tráfego de uma instância específica. Por padrão, o formato do log de fluxo é separado por espaços, mas publicá-lo em formato JSON no CloudWatch Logs torna automática a extração de campos nas consultas do Insights.

# Find top 10 source IPs by rejected byte volume in the last day
fields srcAddr, dstAddr, dstPort, action, bytes
| filter action = 'REJECT'
| stats sum(bytes) as rejectedBytes by srcAddr
| sort rejectedBytes desc
| limit 10

Criptografia de registros com KMS

O CloudWatch Logs criptografa todos os dados em repouso por padrão usando chaves gerenciadas pela AWS. Para obter mais segurança — especialmente em ambientes regulamentados — você pode associar uma chave do KMS gerenciada pelo cliente a um grupo de registros. Isso oferece controle sobre a rotação e o acesso à chave e permite revogar o acesso a todos os dados de registros desabilitando a chave. A chave do KMS deve ter uma política de chaves que conceda ao CloudWatch Logs permissão para usá-la na criptografia e descriptografia.

# Associate a KMS key with a log group
aws logs associate-kms-key \
  --log-group-name /myapp/production/api \
  --kms-key-id arn:aws:kms:us-east-1:111122223333:key/KEY_ID

# Verify encryption is configured
aws logs describe-log-groups \
  --log-group-name-prefix /myapp/production \
  --query 'logGroups[].{Name:logGroupName,KmsKey:kmsKeyId}'

Verificação rápida

Teste sua compreensão dos conceitos de AWS Solutions Architect (SAA-C03) apresentados nesta lição.

Resumo da lição

Nesta lição, você aprendeu: grupos e fluxos de registros organizam os registros por origem, com retenção configurável; o Logs Insights permite consultar e agregar dados de registros com uma poderosa linguagem de consulta baseada em pipes; e os filtros de métricas convertem padrões de registros em métricas do CloudWatch que podem acionar alarmes. A seguir, exploraremos os painéis do CloudWatch e o Container Insights para obter visibilidade operacional.

Perguntas Frequentes

A aula “Registros e Log Insights do CloudWatch” é grátis?

Sim — o texto completo de “Registros e Log Insights do CloudWatch” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AWS Solutions Architect, atualize para CoddyKit PRO. O curso de AWS Solutions Architect inclui 4 aulas no total.

O que vou aprender em “Registros e Log Insights do CloudWatch”?

Agregue registros do EC2, Lambda e contêineres em grupos de registros e execute consultas do CloudWatch Logs Insights para encontrar erros e padrões. Você pratica AWS Solutions Architect com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AWS Solutions Architect?

Nenhuma experiência prévia é necessária. AWS Solutions Architect no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Registros e Log Insights do CloudWatch”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AWS Solutions Architect?

Sim. Cada aula de AWS Solutions Architect inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Métricas, namespaces e dimensões do CloudWatch
  2. Alarmes e alarmes compostos do CloudWatch
  3. Registros e Log Insights do CloudWatch
  4. Painéis do CloudWatch e Container Insights
← Voltar para AWS Solutions Architect