Table of Contents
- Solución de Problemas
- Diagnóstico General
- Problemas Comunes
- NetBox No Inicia
- Error de Conexión a Base de Datos
- Error 502 Bad Gateway (NPM/Traefik)
- Lentitud Extrema
- Error de Migración de Base de Datos
- Certificado SSL no Funciona
- Plugin No Funciona
- Comandos de Emergencia
- Reiniciar Todo
- Recrear NetBox (Mantiene Datos)
- Limpiar y Reiniciar
- Acceso de Emergencia a Django Shell
- Resetear Password de Admin
- Reconstruir Índices de Búsqueda
- Limpiar Sesiones Antiguas
- Recuperación de Desastres
- Obtener Ayuda
- Prevención
- Próximos Pasos
Solución de Problemas
Diagnóstico y resolución de problemas comunes en NetBox.
Diagnóstico General
Ver Logs
# Logs de NetBox
docker logs netbox --tail 100 -f
# Logs de PostgreSQL
docker logs netbox-db --tail 50
# Logs de Redis
docker logs netbox-redis --tail 50
# Logs del stack completo
docker compose logs -f
Verificar Estado
# Estado de contenedores
docker ps -a | grep netbox
# Uso de recursos
docker stats netbox netbox-db netbox-redis --no-stream
# Redes
docker network inspect netbox-internal
docker network inspect proxy
Problemas Comunes
NetBox No Inicia
Síntomas: Contenedor se reinicia constantemente
Diagnóstico:
docker logs netbox | grep -i error
docker logs netbox | grep -i fatal
Causas comunes:
-
PostgreSQL no está listo
docker logs netbox-db docker exec netbox-db pg_isready -U netboxSolución: Esperar o reiniciar PostgreSQL
docker restart netbox-db sleep 10 docker restart netbox -
Redis no accesible
docker exec netbox-redis redis-cli --pass "PASSWORD" pingSolución: Verificar REDIS_PASSWORD en .env
-
Permisos incorrectos
docker exec netbox ls -la /configSolución:
docker run --rm -v netbox_config:/config alpine chown -R 1000:1000 /config docker restart netbox -
Error "cannot stat /app/netbox/netbox/media"
Síntomas: En los logs aparece:
mv: cannot stat '/app/netbox/netbox/media': No such file or directoryCausa: El directorio
/config/mediano existe en el primer inicioSolución:
# Crear directorio media en volumen persistente docker exec netbox mkdir -p /config/media docker exec netbox chown -R abc:users /config/media docker restart netboxVerificar:
docker logs netbox --tail 30
Error de Conexión a Base de Datos
Síntomas:
could not connect to server: Connection refused
FATAL: password authentication failed
Soluciones:
# Verificar que PostgreSQL está corriendo
docker ps | grep netbox-db
# Verificar password en .env
cat .env | grep DB_PASSWORD
# Verificar conexión desde NetBox
docker exec netbox ping netbox-db
# Resetear conexión
docker restart netbox-db
sleep 10
docker restart netbox
Error 502 Bad Gateway (NPM/Traefik)
Síntomas: Proxy no puede conectar con NetBox
Diagnóstico:
# Verificar que NetBox está corriendo
docker ps | grep netbox
# Verificar puerto 8000
docker exec netbox netstat -tlnp | grep 8000
# Verificar desde proxy
docker exec npm ping netbox
Soluciones:
- Verificar que NetBox está en red
proxy - Verificar que el contenedor se llama
netbox - Reiniciar NetBox:
docker restart netbox
Lentitud Extrema
Diagnóstico:
# Ver uso de CPU/RAM
docker stats netbox netbox-db netbox-redis
# Ver queries lentas en PostgreSQL
docker exec netbox-db psql -U netbox -c "SELECT query, calls, total_exec_time FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 10;"
Soluciones:
-
Limpiar caché de Redis
docker exec netbox-redis redis-cli --pass "PASSWORD" FLUSHALL docker restart netbox -
Optimizar PostgreSQL
docker exec netbox-db psql -U netbox -c "VACUUM ANALYZE;" docker exec netbox-db psql -U netbox -c "REINDEX DATABASE netbox;" -
Incrementar recursos (editar compose):
services: netbox: deploy: resources: limits: memory: 2G reservations: memory: 1G
Error de Migración de Base de Datos
Síntomas:
django.db.migrations.exceptions.InconsistentMigrationHistory
Solución:
# Ver migraciones aplicadas
docker exec netbox python /app/netbox/manage.py showmigrations
# Aplicar migraciones faltantes
docker exec netbox python /app/netbox/manage.py migrate
# Si persiste, forzar
docker exec netbox python /app/netbox/manage.py migrate --fake
Certificado SSL no Funciona
Síntomas: Certificado inválido o HTTPS no funciona
Soluciones:
Con Traefik:
# Ver logs de Traefik
docker logs traefik | grep -i acme
docker logs traefik | grep netbox
# Verificar DNS
nslookup netbox.tudominio.com
# Forzar renovación
docker exec traefik rm /letsencrypt/acme.json
docker restart traefik
Con NPM:
- Verificar que DNS apunta correctamente
- Intentar con DNS Challenge si 80/443 bloqueados
- Regenerar certificado en NPM UI
Plugin No Funciona
Diagnóstico:
# Ver plugins instalados
docker exec netbox pip list | grep netbox
# Ver logs de plugin
docker logs netbox | grep -i plugin
Soluciones:
# Reinstalar plugin
docker exec netbox pip install --force-reinstall netbox-plugin-name
# Verificar configuration.py
docker exec netbox cat /config/configuration.py | grep PLUGINS
# Reiniciar
docker restart netbox
Comandos de Emergencia
Reiniciar Todo
docker restart netbox netbox-redis netbox-db
Recrear NetBox (Mantiene Datos)
docker stop netbox
docker rm netbox
docker compose up -d netbox
Limpiar y Reiniciar
# Redis usa tmpfs - simplemente reiniciar el contenedor limpia la caché
docker restart netbox-redis
sleep 5
docker restart netbox
Acceso de Emergencia a Django Shell
# Shell de Django
docker exec -it netbox python /app/netbox/manage.py shell
# Ejemplo: crear superusuario
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> User.objects.create_superuser('admin', 'admin@example.com', 'password')
Resetear Password de Admin
docker exec -it netbox python /app/netbox/manage.py changepassword admin
Reconstruir Índices de Búsqueda
docker exec netbox python /app/netbox/manage.py reindex --lazy
Limpiar Sesiones Antiguas
docker exec netbox python /app/netbox/manage.py clearsessions
Recuperación de Desastres
NetBox Corrupto - Restaurar desde Backup
# 1. Detener todo
docker stop netbox netbox-redis netbox-db
# 2. Eliminar volúmenes corruptos
docker volume rm netbox_db netbox_config
# 3. Recrear volúmenes
docker volume create netbox_db
docker volume create netbox_config
# 4. Iniciar PostgreSQL
docker start netbox-db
sleep 10
# 5. Restaurar BD
gunzip < /backups/netbox/netbox-backup-FECHA.sql.gz | docker exec -i netbox-db psql -U netbox netbox
# 6. Restaurar config
docker run --rm -v netbox_config:/restore -v /backups/netbox:/source alpine tar xzf /source/netbox-config-FECHA.tar.gz -C /restore
# 7. Iniciar todo
docker start netbox-redis
sleep 5
docker start netbox
PostgreSQL Corrupto
# Intentar reparar
docker exec netbox-db pg_resetwal /var/lib/postgresql/data
# Si falla, restaurar desde backup
docker stop netbox-db
docker volume rm netbox_db
docker volume create netbox_db
docker start netbox-db
sleep 10
cat netbox-backup.sql | docker exec -i netbox-db psql -U netbox netbox
Obtener Ayuda
Información del Sistema
# Versión de NetBox
docker exec netbox python /app/netbox/manage.py version
# Versión de Python
docker exec netbox python --version
# Versión de PostgreSQL
docker exec netbox-db psql --version
# Variables de entorno
docker exec netbox env | grep -E "DB_|REDIS_|SUPER"
# Compose usado
docker inspect netbox | grep -A 20 Labels
Recursos Oficiales
Prevención
Monitorización
# Script de health check
#!/bin/bash
if docker exec netbox curl -f http://localhost:8000/api/ > /dev/null 2>&1; then
echo "✓ NetBox OK"
else
echo "✗ NetBox DOWN"
docker logs netbox --tail 50
fi
Alertas
Configura alertas en tu sistema de monitorización (Prometheus, Zabbix, etc.):
- CPU > 80%
- RAM > 90%
- Disco > 85%
- NetBox no responde
Próximos Pasos
- Backup - Automatiza backups para prevenir desastres
- Actualización - Mantén NetBox actualizado
- Comunidad - Pregunta si no encuentras solución