Pular para o conteúdo principal

Resolução de Problemas

Guia de diagnóstico para os problemas mais comuns da plataforma ION Guard.

Diagnóstico geral

Verificar status dos containers

cd /home/iongrade/ionguard
./scripts/comp.sh ps

Todos os containers devem estar com status Up. Se algum estiver Exited ou em restart loop, verifique os logs.

Health check completo

./scripts/healthcheck.sh

Verifica: endpoint HTTP /up, status do Horizon e saúde dos containers.

Logs de um serviço específico

./scripts/comp.sh logs -f ionguard_php --tail 100
./scripts/comp.sh logs -f ionguard_horizon --tail 100
./scripts/comp.sh logs -f ionguard_mosquitto --tail 100

Problemas comuns

A aplicação não abre no navegador

Sintomas: Página em branco, erro de conexão, timeout.

  1. Verificar se o nginx está rodando:

    ./scripts/comp.sh ps ionguard_nginx
  2. Verificar certificado SSL:

    ./scripts/comp.sh logs ionguard_nginx --tail 20
  3. Verificar se o PHP-FPM está respondendo:

    ./scripts/comp.sh exec -T ionguard_php php artisan --version
  4. Verificar firewall:

    sudo ufw status
    # Portas 80, 443 devem estar ALLOW

Alertas não aparecem em tempo real

Sintomas: Alertas só aparecem ao recarregar a página.

  1. Verificar se o Reverb (WebSocket) está rodando:

    ./scripts/comp.sh ps ionguard_reverb
  2. Verificar logs do Reverb:

    ./scripts/comp.sh logs ionguard_reverb --tail 50
  3. No navegador, abrir o console (F12) e verificar erros de WebSocket.

Beacons não aparecem como "Online"

Sintomas: Beacons cadastrados mas sempre com status "Pendente" ou "Offline".

  1. Verificar se o Mosquitto está rodando:

    ./scripts/comp.sh ps ionguard_mosquitto
  2. Verificar se há mensagens MQTT chegando:

    ./scripts/comp.sh exec -T ionguard_mosquitto \
    mosquitto_sub -h localhost -u listener -P "$(grep MQTT_PASSWORD .env | cut -d= -f2)" \
    -t "ionguard/#" -v --retained-only
  3. Verificar se as antenas estão conectadas ao broker correto (host, porta, credenciais).

  4. Verificar logs do worker MQTT:

    ./scripts/comp.sh logs ionguard_mqtt_indoor_location --tail 50

Jobs na fila não estão sendo processados

Sintomas: Relatórios ficam em "Pendente", alertas não são escalados.

  1. Verificar se o Horizon está rodando:

    ./scripts/comp.sh ps ionguard_horizon
  2. Verificar fila no Redis:

    ./scripts/comp.sh exec -T ionguard_valkey redis-cli llen queues:default
  3. Restart do Horizon:

    ./scripts/comp.sh restart ionguard_horizon

Erro "500 Server Error" na interface

  1. Verificar logs do PHP:

    ./scripts/comp.sh logs ionguard_php --tail 100
    # ou
    ./scripts/comp.sh exec -T ionguard_php tail -50 storage/logs/laravel.log
  2. Limpar cache:

    ./scripts/clearCache.sh
  3. Verificar permissões:

    ./scripts/setPermissions.sh

Banco de dados inacessível

  1. Verificar se o MariaDB está rodando:

    ./scripts/comp.sh ps ionguard_mariadb
  2. Testar conexão:

    ./scripts/comp.sh exec -T ionguard_mariadb \
    mariadb -u ionguard -p"$(grep DB_PASSWORD .env | cut -d= -f2)" \
    -e "SELECT 1"
  3. Verificar espaço em disco:

    df -h

Frontend desatualizado após upgrade

Sintomas: Interface mostra versão antiga ou layout quebrado.

# Forçar rebuild do frontend
rm -rf app/public/build
./scripts/up.sh

Comandos úteis

ComandoAção
./scripts/comp.sh psStatus de todos os containers
./scripts/comp.sh logs -f {container}Logs em tempo real
./scripts/healthcheck.shHealth check completo
./scripts/clearCache.shLimpar e reotimizar cache
./scripts/setPermissions.shCorrigir permissões de arquivo
./scripts/restartAllServices.shReiniciar todos os serviços
./scripts/getVersion.shExibir versão atual

Suporte

Se o problema persistir após seguir os passos acima, colete as seguintes informações para suporte:

  1. Saída do ./scripts/healthcheck.sh
  2. Saída do ./scripts/comp.sh ps
  3. Últimas 100 linhas de storage/logs/laravel.log
  4. Versão atual (./scripts/getVersion.sh)
  5. Descrição detalhada do problema e passos para reproduzir