Monitorar CPU, RAM e disco na VPS
Monitorar a VPS proativamente evita surpresas: disco cheio derruba todos os containers, CPU em 100% por horas indica processo malicioso ou loop infinito, RAM no limite causa OOM killer matando processos aleatórios. Com as ferramentas certas, você recebe alerta antes que o problema afete os usuários.
Monitoramento em tempo real: htop
htop é o monitor interativo padrão para Linux — mostra CPU, RAM, processos e permite matar processos diretamente:
# Instalar htop
sudo apt install -y htop
# Executar
htop
# Atalhos úteis no htop:
# F6 / > — ordenar por coluna (CPU%, MEM%, etc.)
# F9 — matar processo (escolha SIGTERM ou SIGKILL)
# F5 — modo árvore (mostra hierarquia de processos)
# Space — marcar processo para ação em lote
# u — filtrar por usuário
# Ver uso de CPU e memória sem interface interativa
top -bn1 | grep -E "Cpu|Mem|Swap"
# Processos que mais consomem CPU agora
ps aux --sort=-%cpu | head -10
# Processos que mais consomem memória
ps aux --sort=-%mem | head -10Uso de disco: df e du
Disco cheio é a causa silenciosa mais comum de falhas em VPS. Monitore regularmente:
# Espaço livre por partição (formato humano)
df -h
# Espaço livre apenas da partição raiz
df -h /
# Encontrar os diretórios mais pesados
du -sh /* 2>/dev/null | sort -rh | head -10
du -sh /var/* 2>/dev/null | sort -rh | head -10
# Encontrar arquivos grandes (> 100 MB)
find / -xdev -size +100M -printf '%s %p
' 2>/dev/null \
| sort -rn | numfmt --to=iec --field=1 | head -20
# Uso de disco por container Docker
docker system df
docker system df -v # detalhadoAlertas automáticos com scripts
Configure alertas por e-mail ou webhook quando CPU, RAM ou disco atingirem limites:
# Script de monitoramento — /opt/check-resources.sh
cat > /opt/check-resources.sh << 'SCRIPT'
#!/bin/bash
WEBHOOK_URL="https://hooks.slack.com/services/..." # ou URL do n8n
HOSTNAME=$(hostname)
THRESHOLD_DISK=85
THRESHOLD_CPU=90
THRESHOLD_MEM=90
# Verificar disco
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | tr -d '%')
if [ "$DISK_USAGE" -gt "$THRESHOLD_DISK" ]; then
curl -s -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d "{"text": "⚠️ DISCO em $HOSTNAME: ${DISK_USAGE}% usado"}"
fi
# Verificar RAM
MEM_USAGE=$(free | awk '/^Mem:/ {printf "%.0f", $3/$2*100}')
if [ "$MEM_USAGE" -gt "$THRESHOLD_MEM" ]; then
curl -s -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d "{"text": "⚠️ RAM em $HOSTNAME: ${MEM_USAGE}% usada"}"
fi
SCRIPT
chmod +x /opt/check-resources.sh
# Executar a cada 5 minutos via cron
echo "*/5 * * * * /opt/check-resources.sh" | crontab -Netdata: painel visual de monitoramento
Netdata é um painel web completo com gráficos em tempo real, sem configuração manual de métricas:
# Instalar Netdata via script oficial
curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh
sh /tmp/netdata-kickstart.sh --stable-channel
# Acessar o painel em: http://IP_DA_VPS:19999
# Para proteger com Nginx (sem expor a porta 19999):
# No nginx.conf:
# location /netdata/ {
# proxy_pass http://127.0.0.1:19999/;
# auth_basic "Restrito";
# auth_basic_user_file /etc/nginx/.htpasswd;
# }
# Criar senha para autenticação básica
sudo apt install apache2-utils -y
sudo htpasswd -c /etc/nginx/.htpasswd adminMonitorar containers Docker
Além do sistema, monitore o consumo de recursos por container:
# Snapshot de uso de todos os containers
docker stats --no-stream
# Monitoramento contínuo (atualiza a cada segundo)
docker stats
# Uso de memória detalhado por container
docker stats --format "table {{.Name}} {{.MemUsage}} {{.MemPerc}} {{.CPUPerc}}"
# Eventos Docker (start, stop, die, OOM)
docker events --filter type=container
# Ver se algum container foi morto por OOM
docker inspect nome_do_container | grep -A5 "OOMKilled"
# OOMKilled: true = container foi morto por falta de memória$ runstack deploy --plan starter
Não quer configurar manualmente?
Não quer configurar manualmente? Implante o VPS em menos de 3 minutos com a Runstack. Infraestrutura da OPEN DATACENTER, com servidores no Brasil.