Guia completo de monitoramento com CloudWatch

Metricas, alarmes, paineis, logs do CloudWatch e EventBridge explicados com analogias do dia a dia para iniciantes.

CloudWatch e o servico de monitoramento e observabilidade da AWS. Pense nele como o sistema de monitoramento de um hospital para seus servidores. Assim como enfermeiras monitoram a frequencia cardiaca, pressao arterial e niveis de oxigenio de um paciente em um monitor e um alarme soa quando algo esta errado, o CloudWatch monitora a CPU, rede e atividade de disco dos seus servidores e alerta quando algo nao esta certo.

Se voce nunca usou AWS antes, aqui esta a forma mais simples de entender o CloudWatch: ele e a resposta para "como sei se meus recursos da AWS estao saudaveis agora?"

 

Metricas do CloudWatch — Os numeros que descrevem seu sistema

Uma metrica e uma medicao em um momento especifico. Por exemplo: "o uso da CPU e 73% agora" ou "o servidor recebeu 500 MB de dados no ultimo minuto." O CloudWatch armazena essas medicoes ao longo do tempo para que voce possa ver tendencias e detectar problemas.

As metricas vem em dois tipos.

Metricas padrao vs Metricas personalizadas

| Tipo | Metricas padrao | Metricas personalizadas | |------|----------------|------------------------| | Quem as coleta? | AWS coleta automaticamente | Voce as envia manualmente | | Custo | Gratuito | Cobrado por metrica | | Exemplos | Uso de CPU do EC2, rede entrada/saida, leitura/escrita EBS | Uso de memoria, espaco livre em disco, tempo de resposta do app | | Intervalo de coleta | Padrao 5 minutos (detalhado: 1 minuto) | Tao frequente quanto a cada 1 segundo |

Aqui esta um ponto de exame criticamente importante que confunde muitas pessoas: o uso de memoria (RAM) do EC2 e o espaco livre em disco NAO estao incluidos nas metricas padrao.

Por que? Porque essa informacao vive dentro do sistema operacional do seu servidor. A AWS gerencia o hardware fisico fora do seu servidor, mas nao consegue olhar dentro do SO em si. Para obter dados de memoria e disco, voce deve instalar o software CloudWatch Agent na sua instancia EC2. O Agent le os internos do SO e envia os dados ao CloudWatch como metricas personalizadas.

Pense assim: a AWS pode ver o exterior do seu edificio de apartamentos (a eletricidade esta ligada? o edificio e estruturalmente solido?), mas nao pode entrar no seu apartamento e verificar o que ha dentro da sua geladeira. O CloudWatch Agent e como dar a AWS uma chave do seu apartamento.

Monitoramento detalhado

Por padrao, o CloudWatch coleta metricas a cada 5 minutos. Habilitar o Monitoramento Detalhado muda isso para a cada 1 minuto. Ha um custo adicional, mas significa que voce detecta problemas mais cedo. Isso e especialmente util combinado com o Auto Scaling: em vez de esperar 5 minutos para notar um pico de trafego e adicionar servidores, voce pode reagir em 1 minuto.

 

Alarmes do CloudWatch — Acao automatica quando algo da errado

Um alarme e uma regra que diz "quando esta metrica ultrapassar este limite, execute esta acao." Pense em um detector de fumaca: quando a fumaca atinge um certo nivel, o alarme soa.

Tres tipos de alarmes

Os alarmes de limite estatico comparam uma metrica com um numero fixo. Por exemplo: "me envie um email quando o uso da CPU ultrapassar 80%." Simples e previsivel.

Os alarmes de Deteccao de Anomalias usam aprendizado de maquina para aprender o padrao normal de uma metrica ao longo do tempo, depois alertam quando a metrica se desvia desse padrao. Por exemplo, se a CPU do seu servidor sempre sobe as 9h nos dias de semana, a deteccao de anomalias sabe que isso e normal. Mas se a CPU sobe repentinamente as 3h, ela marca isso como incomum.

Os Alarmes Compostos combinam multiplos alarmes usando logica AND ou OR. Por exemplo: "so dispare um alarme se a CPU estiver alta E a memoria tambem estiver alta." Isso reduz os falsos alarmes. Imagine que voce so quer acordar o engenheiro de plantao se tanto a CPU quanto a memoria estiverem com problemas ao mesmo tempo, nao apenas um deles.

| Tipo de alarme | Como funciona | Melhor para | |---------------|-------------|------------| | Limite estatico | Comparar com um numero fixo | Quando voce sabe o que significa "muito alto" | | Deteccao de Anomalias | Aprender padroes normais, detectar desvios | Quando os padroes sao complexos ou desconhecidos | | Alarme Composto | Combinar multiplos alarmes com AND/OR | Reduzir falsos alarmes |

Que acoes um alarme pode tomar?

Quando um alarme e disparado, ele pode automaticamente fazer uma de tres coisas.

Enviar uma notificacao SNS: isso pode acionar um email para sua equipe, uma mensagem SMS, uma mensagem do Slack atraves de uma funcao Lambda, ou qualquer outra notificacao que voce configurar.

Realizar uma acao EC2: parar a instancia, encerrá-la, reinicia-la ou recuperá-la em novo hardware. A acao de recuperacao e particularmente importante para o exame. Quando um servidor tem uma falha de hardware, a metrica StatusCheckFailed_System vai para 1. Se voce configurou uma acao de alarme de Recuperacao nessa metrica, a AWS move automaticamente sua instancia para um novo hardware, preservando o endereco IP, o ID da instancia e os dados.

Acionar o Auto Scaling: adicionar mais servidores quando o trafego esta alto, ou remover servidores quando o trafego esta baixo.

 

Paineis do CloudWatch — Ver tudo de uma so vez

Um painel e uma pagina personalizavel que exibe multiplas metricas como graficos e numeros em um so lugar. Pense nele como a sala de controle de uma usina eletrica, onde os engenheiros podem ver o estado de toda a instalacao em uma parede de monitores.

Os paineis sao uteis porque voce pode combinar metricas de multiplas contas AWS em uma unica visualizacao. Voce pode mostrar metricas de multiplas regioes AWS no mesmo painel. O intervalo de atualizacao automatica pode ser configurado para 10 segundos, 1 minuto ou 5 minutos.

 

CloudWatch Logs — Armazenar e pesquisar dados de log

Um log e um registro de texto do que aconteceu em um sistema. Seu servidor web registra cada solicitacao: quem visitou, que pagina solicitaram, quando fizeram isso e que resposta foi enviada. Quando algo da errado, voce pesquisa os logs para encontrar a causa.

A estrutura do CloudWatch Logs

Um Grupo de Logs e um container para logs relacionados. Por exemplo, todos os logs de uma funcao Lambda chamada my-order-processor iriam para um grupo de logs chamado /aws/lambda/my-order-processor. Pense nele como uma pasta.

Um Fluxo de Logs e uma sequencia de eventos de log dentro de um grupo de logs. Cada instancia EC2 ou invocacao de Lambda cria seu proprio fluxo de logs dentro do grupo. Pense nele como um arquivo dentro da pasta.

O periodo de retencao controla por quanto tempo os logs sao mantidos. O padrao e para sempre, mas voce pode configura-lo de 1 dia a 10 anos para controlar os custos de armazenamento.

Filtros de Metricas — Convertendo texto de log em numeros

Um filtro de metrica varre seus logs em busca de um padrao de texto especifico e conta quantas vezes ele aparece, convertendo essa contagem em uma metrica do CloudWatch.

Aqui esta um exemplo concreto: sua aplicacao registra erros com a palavra "ERROR" na mensagem. Voce cria um filtro de metrica que conta cada ocorrencia de "ERROR" no grupo de logs. Em seguida, cria um alarme do CloudWatch nessa metrica: se mais de 10 erros aparecerem em 5 minutos, envie um alerta para a equipe. Isso lhe da monitoramento automatizado de taxa de erros sem nenhuma mudanca de codigo.

CloudWatch Logs Insights — Consultar seus logs como um banco de dados

O Logs Insights permite pesquisar e analisar dados de log usando uma linguagem de consulta semelhante ao SQL. Em vez de rolar por milhares de linhas de log, voce pode executar consultas como "mostre-me todas as solicitacoes que levaram mais de 3 segundos na ultima hora, agrupadas por endpoint." Os resultados podem ser visualizados como graficos.

 

EventBridge — Reagir a eventos automaticamente

EventBridge e um servico que monitora eventos que ocorrem em seu ambiente AWS e automaticamente toma medidas com base em regras que voce define. O padrao e sempre: "quando o evento X acontece, execute a acao Y."

Aqui estao exemplos reais do que o EventBridge pode fazer:

Quando uma instancia EC2 e encerrada, enviar imediatamente uma notificacao SNS para a equipe de operacoes.

Todos os dias a meia-noite, acionar uma funcao Lambda que faz backup do banco de dados.

Quando um usuario IAM faz login a partir de uma localizacao geografica incomum, acionar um fluxo de trabalho de revisao de seguranca.

Os destinos do EventBridge incluem funcoes Lambda, topicos SNS, filas SQS, fluxos de trabalho do Step Functions e muito mais.

Nota: o EventBridge era anteriormente chamado de CloudWatch Events. Voce pode ver ambos os nomes no exame. Eles sao o mesmo servico.

 

Pontos-chave do exame

"Monitorar uso de memoria e disco no EC2" -- Instalar CloudWatch Agent, coletar como metricas personalizadas

"Mudar coleta de 5 minutos para 1 minuto" -- Habilitar Monitoramento Detalhado

"Alertar quando o comportamento se desvia dos padroes normais" -- Alarme de Deteccao de Anomalias

"So disparar alarme quando CPU esta alta E memoria esta alta" -- Alarme Composto

"Mover automaticamente EC2 para novo hardware apos falha de hardware" -- Alarme StatusCheckFailed_System com acao Recover

"Contar ocorrencias de ERROR em logs e alertar" -- Filtro de Metrica

"Pesquisar logs com consultas tipo SQL" -- CloudWatch Logs Insights

Voltar à lista do blog