Sistema completo para monitoreo y gestion de flotas de vehiculos con: - Backend FastAPI con PostgreSQL/TimescaleDB - Frontend React con TypeScript y TailwindCSS - App movil React Native con Expo - Soporte para dispositivos GPS, Meshtastic y celulares - Video streaming en vivo con MediaMTX - Geocercas, alertas, viajes y reportes - Autenticacion JWT y WebSockets en tiempo real Documentacion completa y guias de usuario incluidas.
134 lines
3.7 KiB
Bash
134 lines
3.7 KiB
Bash
#!/bin/bash
|
|
# ============================================
|
|
# Sistema de Flotillas - Visor de Logs
|
|
# ============================================
|
|
# Muestra logs de los diferentes servicios
|
|
#
|
|
# Uso: ./logs.sh [servicio] [--follow] [--lines N]
|
|
#
|
|
# Servicios: api, web, traccar, mediamtx, postgres, redis, all
|
|
# ============================================
|
|
|
|
# Variables
|
|
LINES="${LINES:-100}"
|
|
FOLLOW=false
|
|
SERVICE="api"
|
|
|
|
# Colores
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
# ---------------------------------------------
|
|
# Parsear argumentos
|
|
# ---------------------------------------------
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
api|web|traccar|mediamtx|postgres|redis|mosquitto|all)
|
|
SERVICE="$1"
|
|
shift
|
|
;;
|
|
-f|--follow)
|
|
FOLLOW=true
|
|
shift
|
|
;;
|
|
-n|--lines)
|
|
LINES="$2"
|
|
shift 2
|
|
;;
|
|
--help|-h)
|
|
echo "Sistema de Flotillas - Visor de Logs"
|
|
echo ""
|
|
echo "Uso: $0 [servicio] [opciones]"
|
|
echo ""
|
|
echo "Servicios:"
|
|
echo " api - Backend FastAPI"
|
|
echo " web - Frontend"
|
|
echo " traccar - Traccar GPS"
|
|
echo " mediamtx - Video streaming"
|
|
echo " postgres - Base de datos"
|
|
echo " redis - Cache"
|
|
echo " mosquitto - MQTT"
|
|
echo " all - Todos los servicios"
|
|
echo ""
|
|
echo "Opciones:"
|
|
echo " -f, --follow Seguir logs en tiempo real"
|
|
echo " -n, --lines N Numero de lineas (default: 100)"
|
|
echo ""
|
|
echo "Ejemplos:"
|
|
echo " $0 api -f # Seguir logs de API"
|
|
echo " $0 traccar -n 500 # Ultimas 500 lineas de Traccar"
|
|
echo " $0 all -f # Todos los logs en tiempo real"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Opcion desconocida: $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# ---------------------------------------------
|
|
# Mostrar logs
|
|
# ---------------------------------------------
|
|
show_logs() {
|
|
local unit="$1"
|
|
local name="$2"
|
|
|
|
echo -e "${BLUE}=== Logs de $name ===${NC}"
|
|
|
|
local cmd="journalctl -u $unit -n $LINES --no-pager"
|
|
|
|
if [[ "$FOLLOW" == "true" ]]; then
|
|
cmd="journalctl -u $unit -f"
|
|
fi
|
|
|
|
$cmd 2>/dev/null || echo "Servicio no disponible o sin logs"
|
|
echo ""
|
|
}
|
|
|
|
case $SERVICE in
|
|
api)
|
|
show_logs "flotillas-api" "API Backend"
|
|
;;
|
|
web)
|
|
show_logs "flotillas-web" "Frontend"
|
|
;;
|
|
traccar)
|
|
show_logs "traccar" "Traccar GPS"
|
|
# Tambien mostrar log de archivo si existe
|
|
if [[ -f "/opt/traccar/logs/tracker-server.log" ]]; then
|
|
echo -e "${BLUE}=== Log de archivo Traccar ===${NC}"
|
|
tail -n $LINES /opt/traccar/logs/tracker-server.log
|
|
fi
|
|
;;
|
|
mediamtx)
|
|
show_logs "mediamtx" "MediaMTX"
|
|
;;
|
|
postgres)
|
|
show_logs "postgresql" "PostgreSQL"
|
|
;;
|
|
redis)
|
|
show_logs "redis-server" "Redis"
|
|
;;
|
|
mosquitto)
|
|
show_logs "mosquitto" "Mosquitto MQTT"
|
|
;;
|
|
all)
|
|
if [[ "$FOLLOW" == "true" ]]; then
|
|
echo "Mostrando todos los logs en tiempo real..."
|
|
echo "Presiona Ctrl+C para salir"
|
|
echo ""
|
|
journalctl -u flotillas-api -u flotillas-web -u traccar -u mediamtx -u mosquitto -f
|
|
else
|
|
show_logs "flotillas-api" "API Backend"
|
|
show_logs "flotillas-web" "Frontend"
|
|
show_logs "traccar" "Traccar GPS"
|
|
show_logs "mediamtx" "MediaMTX"
|
|
show_logs "mosquitto" "Mosquitto MQTT"
|
|
fi
|
|
;;
|
|
esac
|