🔧 Troubleshooting - C-Suite Ecosystem
Guia rápido de resolução de problemas comuns no ecossistema C-Suite.
🚨 Problemas Críticos
Serviço não inicia
Sintomas:
- Serviço não aparece em docker service ls
- Status 0/1 ou 0/N replicas
- Logs mostram erro de inicialização
Soluções:
# 1. Verificar logs do serviço
docker service logs -f <service_name>
# 2. Verificar configuração do stack
docker stack ps <stack_name> --no-trunc
# 3. Verificar recursos disponíveis
docker node ls
docker system df
# 4. Reiniciar serviço
docker service update --force <service_name>
Causas comuns:
- Variáveis de ambiente faltando
- Secrets não configurados
- Porta já em uso
- Memória insuficiente
- Imagem Docker não encontrada
Erro de conexão com banco de dados
Sintomas:
- Connection refused ou Access denied
- Timeout ao conectar
- Can't connect to MySQL server
Soluções:
# 1. Verificar se o MySQL está rodando
docker service ls | grep mysql
docker service logs mysql
# 2. Testar conexão
mysql -h $CSUITE_DB_HOST -P $CSUITE_DB_PORT -u $CSUITE_DB_USER -p
# 3. Verificar variáveis de ambiente
docker service inspect <service_name> | grep -A 10 Env
# 4. Verificar secrets
docker secret ls
docker secret inspect <secret_name>
Causas comuns:
- Credenciais incorretas
- Host/porta errados
- Firewall bloqueando
- MySQL não está rodando
- Secret não montado corretamente
Traefik não roteia corretamente
Sintomas:
- 404 Not Found em URLs corretas
- Redirecionamento incorreto
- Certificado SSL inválido
Soluções:
# 1. Verificar labels Traefik
docker service inspect <service_name> | grep -A 20 Labels
# 2. Verificar logs do Traefik
docker service logs -f traefik
# 3. Verificar regras de roteamento
# Acesse: https://traefik.internut.com.br (se configurado)
# 4. Verificar prioridades
# Serviços com prioridade maior são avaliados primeiro
Causas comuns:
- Labels Traefik faltando ou incorretos
- Prioridade muito baixa (outro serviço intercepta)
- PathPrefix não configurado corretamente
- Certificado Let's Encrypt não gerado
⚠️ Problemas de Performance
Serviço lento ou timeout
Sintomas:
- Respostas lentas (> 5s)
- Timeouts frequentes
- Alta utilização de CPU/memória
Soluções:
# 1. Verificar recursos do container
docker stats <container_id>
# 2. Verificar logs de queries lentas
# (se slow query log habilitado no MySQL)
# 3. Escalar serviço
docker service scale <service_name>=N
# 4. Verificar índices do banco
# Executar: scripts/analyze_database_indexes.py
Causas comuns:
- Queries sem índices
- Falta de cache
- Recursos insuficientes
- Conexões de banco esgotadas
- Processamento síncrono pesado
Alta utilização de memória
Sintomas:
- Containers sendo mortos (OOM)
- Sistema lento
- Out of memory nos logs
Soluções:
# 1. Verificar uso de memória
docker stats --no-stream
# 2. Verificar limites de memória
docker service inspect <service_name> | grep -i memory
# 3. Ajustar limites no docker-stack.yml
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M
# 4. Reiniciar serviços com vazamento
docker service update --force <service_name>
🔐 Problemas de Autenticação
Login não funciona
Sintomas:
- 401 Unauthorized
- Invalid credentials
- Token não aceito
Soluções:
# 1. Verificar se csuite-auth está rodando
docker service ls | grep csuite-auth
curl https://csuite.internut.com.br/auth/health
# 2. Verificar logs
docker service logs -f csuite-auth_csuite-auth-api
# 3. Testar login diretamente
curl -X POST https://csuite.internut.com.br/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"senha"}'
# 4. Verificar JWT_SECRET_KEY
docker service inspect csuite-auth_csuite-auth-api | grep JWT_SECRET
Causas comuns:
- csuite-auth não está rodando
- JWT_SECRET_KEY diferente entre serviços
- Token expirado
- Usuário não existe no banco
Endpoint protegido retorna 401
Sintomas:
- Endpoint retorna 401 mesmo com token
- Token invalid ou Token expired
Soluções:
# 1. Verificar token no JWT.io
# https://jwt.io
# 2. Verificar se AUTH_ENABLED=true
docker service inspect <service_name> | grep AUTH_ENABLED
# 3. Verificar AUTH_SERVICE_URL
docker service inspect <service_name> | grep AUTH_SERVICE_URL
# 4. Testar validação de token
curl https://csuite.internut.com.br/auth/validate \
-H "Authorization: Bearer <token>"
📊 Problemas de Observabilidade
Grafana não mostra dados
Sintomas:
- Dashboards vazios
- "No data" em todos os painéis
- Datasource não conecta
Soluções:
# 1. Verificar se Prometheus está rodando
docker service ls | grep prometheus
curl http://prometheus:9090/-/healthy
# 2. Verificar datasource no Grafana
# Acesse: https://grafana.internut.com.br
# Configuration → Data Sources → Prometheus
# 3. Verificar se métricas estão sendo coletadas
curl http://prometheus:9090/api/v1/query?query=up
# 4. Verificar configuração do Prometheus
docker exec $(docker ps -q -f name=prometheus) cat /etc/prometheus/prometheus.yml
Logs não aparecem no Kibana
Sintomas:
- Kibana vazio
- Index pattern não encontra dados
- Filebeat não coleta logs
Soluções:
# 1. Verificar se ELK stack está rodando
docker service ls | grep elk
# 2. Verificar logs do Filebeat
docker service logs -f elk_filebeat
# 3. Verificar Elasticsearch
curl http://elasticsearch:9200/_cat/indices
# 4. Verificar Logstash
docker service logs -f elk_logstash
# 5. Verificar index pattern no Kibana
# Management → Index Patterns → csuite-logs-*
🐳 Problemas Docker
Container não inicia
Sintomas:
- Status Exited ou Restarting
- Cannot connect to Docker daemon
Soluções:
# 1. Verificar logs
docker logs <container_id>
# 2. Verificar Docker daemon
sudo systemctl status docker
# 3. Reiniciar Docker (cuidado!)
sudo systemctl restart docker
# 4. Verificar espaço em disco
df -h
docker system df
Volume não monta
Sintomas:
- Volume not found
- Dados não persistem
- Permissões negadas
Soluções:
# 1. Verificar se volume existe
docker volume ls
docker volume inspect <volume_name>
# 2. Criar volume se não existir
docker volume create <volume_name>
# 3. Verificar permissões
docker volume inspect <volume_name> | grep Mountpoint
sudo ls -la <mountpoint>
# 4. Verificar paths no docker-stack.yml
🔄 Problemas de Deploy
Stack não faz deploy
Sintomas:
- docker stack deploy falha
- service not found
- network not found
Soluções:
# 1. Verificar sintaxe YAML
docker stack config <docker-stack.yml>
# 2. Verificar rede
docker network ls | grep superbot-swarm-network
docker network create --driver overlay superbot-swarm-network
# 3. Verificar secrets
docker secret ls
docker secret create <secret_name> <file>
# 4. Verificar variáveis de ambiente
# Certifique-se de que todas as variáveis necessárias estão definidas
📝 Comandos Úteis
Diagnóstico Rápido
# Status de todos os serviços
docker service ls
# Logs de um serviço
docker service logs -f <service_name>
# Recursos do sistema
docker stats --no-stream
# Espaço em disco
docker system df
# Limpar recursos não utilizados
docker system prune -a
# Verificar saúde do Swarm
docker node ls
docker info
Reset Completo (Cuidado!)
# ⚠️ ATENÇÃO: Isso remove TODOS os serviços!
docker stack rm $(docker stack ls --format "{{.Name}}")
# Limpar tudo
docker system prune -a --volumes
📞 Suporte
Coletar Informações para Debug
# Script de diagnóstico
cat > /tmp/diagnose.sh << 'EOF'
#!/bin/bash
echo "=== Docker Swarm Status ==="
docker node ls
echo ""
echo "=== Services ==="
docker service ls
echo ""
echo "=== System Resources ==="
docker stats --no-stream
echo ""
echo "=== Disk Usage ==="
docker system df
echo ""
echo "=== Networks ==="
docker network ls
echo ""
echo "=== Volumes ==="
docker volume ls
EOF
chmod +x /tmp/diagnose.sh
/tmp/diagnose.sh > diagnose_output.txt
🔗 Links Úteis
- Gateway: https://csuite.internut.com.br
- Grafana: https://grafana.internut.com.br
- Kibana: https://kibana.internut.com.br
- Portainer: https://portainer.internut.com.br
- Prometheus: https://prometheus.internut.com.br
Última atualização: 2025-12-06