## Backend Changes - Add new API endpoints: combustible, pois, mantenimiento, video, configuracion - Fix vehiculos endpoint to return paginated response with items array - Add /vehiculos/all endpoint for non-paginated list - Add /geocercas/all endpoint - Add /alertas/configuracion GET/PUT endpoints - Add /viajes/activos and /viajes/iniciar endpoints - Add /reportes/stats, /reportes/templates, /reportes/preview endpoints - Add /conductores/all and /conductores/disponibles endpoints - Update router.py to include all new modules ## Frontend Changes - Fix authentication token handling (snake_case vs camelCase) - Update vehiculosApi.listAll to use /vehiculos/all - Fix FuelGauge component usage in Combustible page - Fix chart component exports (named + default exports) - Update API client for proper token refresh ## Infrastructure - Rename services from ADAN to ATLAS - Configure Cloudflare tunnel for atlas.consultoria-as.com - Update systemd service files - Configure PostgreSQL with TimescaleDB - Configure Redis, Mosquitto, Traccar, MediaMTX ## Documentation - Update installation guides - Update API reference - Rename all ADAN references to ATLAS Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
9.4 KiB
Solucion de Problemas
Guia para diagnosticar y resolver problemas comunes en ATLAS.
Diagnostico Rapido
Verificar Estado de Servicios
# Ver estado de todos los servicios
systemctl status atlas-api atlas-web traccar mediamtx cloudflared redis postgresql
# Resumen rapido
for svc in atlas-api atlas-web traccar mediamtx cloudflared; do
echo "$svc: $(systemctl is-active $svc)"
done
Verificar Logs
# API Backend
journalctl -u atlas-api -f
# Frontend
journalctl -u atlas-web -f
# Traccar (GPS)
journalctl -u traccar -f
# Cloudflare Tunnel
journalctl -u cloudflared -f
Verificar Conectividad
# Puerto GPS
netstat -tlnp | grep 5055
# Puerto API
curl http://localhost:8000/api/v1/health
# Puerto Frontend
curl http://localhost:3000
# Base de datos
psql -U atlas -d atlas_db -c "SELECT 1"
# Redis
redis-cli ping
Problemas de Acceso Web
No puedo acceder al dashboard
Sintomas: El navegador muestra error de conexion o timeout.
Verificar:
- Estado del tunnel de Cloudflare:
systemctl status cloudflared
cloudflared tunnel info atlas
- Estado del frontend:
systemctl status atlas-web
curl http://localhost:3000
Soluciones:
- Reiniciar el tunnel:
systemctl restart cloudflared
-
Verificar configuracion DNS en Cloudflare dashboard
-
Verificar que el dominio apunta al tunnel correcto
Error 502 Bad Gateway
Causa: El backend no esta respondiendo.
Verificar:
systemctl status atlas-api
curl http://localhost:8000/api/v1/health
Soluciones:
# Reiniciar backend
systemctl restart atlas-api
# Ver logs de error
journalctl -u atlas-api -n 100 --no-pager
Error de SSL/Certificado
Causa: Problema con Cloudflare.
Soluciones:
- En Cloudflare dashboard, verificar que SSL este en "Full" o "Full (strict)"
- Verificar que el dominio este activo
- Esperar propagacion DNS (hasta 24 horas)
Problemas con GPS
Los dispositivos GPS no se conectan
Sintomas: Vehiculos aparecen offline, no se reciben ubicaciones.
Verificar:
- Puerto 5055 abierto:
# Desde el servidor
netstat -tlnp | grep 5055
# Desde fuera (otra maquina)
nc -zv IP_SERVIDOR 5055
- Traccar funcionando:
systemctl status traccar
journalctl -u traccar -f
- Firewall:
ufw status
# Debe mostrar 5055/tcp ALLOW
Soluciones:
- Abrir puerto en firewall:
ufw allow 5055/tcp
-
Verificar configuracion del GPS:
- IP/dominio del servidor correcto
- Puerto 5055
- Protocolo correcto (ver manual del GPS)
-
Reiniciar Traccar:
systemctl restart traccar
GPS conecta pero no aparece en el mapa
Causa: El dispositivo no esta vinculado a un vehiculo.
Solucion:
- Verificar que el dispositivo esta registrado en Traccar:
# Ver dispositivos en Traccar
curl http://localhost:8082/api/devices
- Vincular el dispositivo al vehiculo desde el dashboard
Ubicaciones con retraso
Causas posibles:
- Problema de red del GPS
- Intervalo de reporte muy largo
- Problema de procesamiento
Verificar:
# Ver ubicaciones recientes en DB
psql -U atlas -d atlas_db -c "
SELECT vehiculo_id, tiempo, lat, lng
FROM ubicaciones
ORDER BY tiempo DESC
LIMIT 10;
"
Problemas con la App Movil
La app no envia ubicacion
Verificar en el telefono:
- Permiso de ubicacion en "Siempre"
- GPS activado
- Datos moviles o WiFi activo
- App no en modo ahorro de bateria
Verificar en el servidor:
# Ver ultimas ubicaciones de apps
journalctl -u atlas-api | grep "ubicacion" | tail -20
App no puede conectar al servidor
Causas:
- Sin conexion a internet
- Token expirado
- Dispositivo no registrado
Solucion:
- Verificar conexion a internet
- Cerrar sesion y volver a entrar
- Verificar que el conductor tiene dispositivo asignado
Notificaciones no llegan
Verificar:
- Permiso de notificaciones en el telefono
- App no silenciada
- Token de push registrado
En el servidor:
# Ver logs de notificaciones
journalctl -u atlas-api | grep "push\|notification"
Problemas de Video
Camara no conecta
Verificar:
- URL del stream correcta
- Credenciales correctas
- Camara accesible desde el servidor
# Probar conexion RTSP
ffprobe rtsp://usuario:password@IP_CAMARA/stream
Soluciones:
- Verificar que la camara y el servidor estan en la misma red (o hay ruta)
- Verificar puerto de la camara no bloqueado
- Probar con VLC desde otra maquina
Video con lag/retraso
Causas:
- Ancho de banda insuficiente
- Servidor sobrecargado
- Configuracion de bitrate muy alto
Soluciones:
- Reducir calidad del stream en configuracion de camara
- Verificar uso de CPU/RAM del servidor
- Usar HLS en lugar de WebRTC para conexiones lentas
No se guardan grabaciones
Verificar:
- Espacio en disco:
df -h /opt/atlas/videos
- Permisos:
ls -la /opt/atlas/videos
Solucion:
# Liberar espacio
find /opt/atlas/videos -name "*.mp4" -mtime +30 -delete
# Arreglar permisos
chown -R www-data:www-data /opt/atlas/videos
Problemas de Base de Datos
Error de conexion a PostgreSQL
# Verificar estado
systemctl status postgresql
# Verificar que acepta conexiones
psql -U atlas -d atlas_db -c "SELECT 1"
Soluciones:
# Reiniciar PostgreSQL
systemctl restart postgresql
# Ver logs
journalctl -u postgresql -f
Base de datos lenta
Verificar:
# Ver consultas lentas
psql -U atlas -d atlas_db -c "
SELECT pid, now() - pg_stat_activity.query_start AS duration, query
FROM pg_stat_activity
WHERE state != 'idle'
ORDER BY duration DESC;
"
Soluciones:
- Ejecutar VACUUM:
psql -U atlas -d atlas_db -c "VACUUM ANALYZE;"
- Verificar indices:
psql -U atlas -d atlas_db -c "\di"
Disco lleno por ubicaciones
Verificar:
psql -U atlas -d atlas_db -c "
SELECT pg_size_pretty(pg_total_relation_size('ubicaciones'));
"
Solucion: Comprimir datos antiguos (TimescaleDB):
psql -U atlas -d atlas_db -c "
SELECT compress_chunk(c)
FROM show_chunks('ubicaciones', older_than => INTERVAL '7 days') c;
"
Problemas de Rendimiento
Servidor lento
Verificar recursos:
# CPU y RAM
htop
# Disco
iostat -x 1
# Conexiones de red
ss -s
Soluciones:
- Aumentar RAM de la VM
- Agregar mas cores de CPU
- Usar SSD para base de datos
- Optimizar consultas lentas
API responde lento
Verificar:
# Tiempo de respuesta
time curl http://localhost:8000/api/v1/health
# Workers activos
ps aux | grep uvicorn
Soluciones:
- Aumentar workers en el servicio:
# Editar /etc/systemd/system/atlas-api.service
# Cambiar --workers 4 a --workers 8
systemctl daemon-reload
systemctl restart atlas-api
- Verificar conexiones a Redis:
redis-cli info clients
Problemas de Meshtastic
Nodos no aparecen
Verificar MQTT:
# Estado de Mosquitto
systemctl status mosquitto
# Suscribirse para ver mensajes
mosquitto_sub -h localhost -t "atlas/mesh/#" -u mesh_gateway -P password
Verificar configuracion del gateway:
- MQTT habilitado
- Servidor y credenciales correctos
- Topic correcto
Ubicaciones de mesh no se guardan
Verificar:
journalctl -u atlas-api | grep "meshtastic\|mesh"
Solucion: Verificar que el servicio MQTT esta corriendo en el backend.
Backup y Restauracion
Backup falla
Verificar:
# Espacio en disco
df -h /opt/atlas/backups
# Permisos
ls -la /opt/atlas/scripts/backup.sh
Ejecutar manualmente para ver errores:
/opt/atlas/scripts/backup.sh 2>&1 | tee /tmp/backup.log
Restauracion falla
Verificar integridad del backup:
gunzip -t /opt/atlas/backups/db_FECHA.sql.gz
Restaurar paso a paso:
# Parar servicios
systemctl stop atlas-api
# Recrear base de datos
psql -U postgres -c "DROP DATABASE atlas_db;"
psql -U postgres -c "CREATE DATABASE atlas_db OWNER atlas;"
# Restaurar
gunzip -c backup.sql.gz | psql -U atlas -d atlas_db
# Iniciar servicios
systemctl start atlas-api
Comandos Utiles de Diagnostico
# Estado general del sistema
systemctl status atlas-api atlas-web traccar mediamtx cloudflared
# Uso de recursos
htop
df -h
free -h
# Logs en tiempo real
journalctl -u atlas-api -f
# Conexiones activas
ss -tlnp
# Verificar puertos
netstat -tlnp
# Test de API
curl -s http://localhost:8000/api/v1/health | jq
# Test de base de datos
psql -U atlas -d atlas_db -c "SELECT COUNT(*) FROM vehiculos;"
# Ultimas ubicaciones
psql -U atlas -d atlas_db -c "
SELECT v.nombre, u.tiempo, u.lat, u.lng, u.velocidad
FROM ubicaciones u
JOIN vehiculos v ON u.vehiculo_id = v.id
ORDER BY u.tiempo DESC
LIMIT 10;
"
# Alertas pendientes
psql -U atlas -d atlas_db -c "
SELECT COUNT(*) as pendientes FROM alertas WHERE atendida = false;
"
Contacto de Soporte
Si no puedes resolver el problema:
- Recolectar informacion:
# Crear archivo de diagnostico
{
echo "=== FECHA ==="
date
echo "=== SERVICIOS ==="
systemctl status atlas-api atlas-web traccar mediamtx cloudflared
echo "=== RECURSOS ==="
free -h
df -h
echo "=== LOGS RECIENTES ==="
journalctl -u atlas-api -n 50 --no-pager
} > /tmp/diagnostico.txt
- Enviar
diagnostico.txtal equipo de soporte