Detecta errores sin vigilar los logs todo el día. Integra Sentry con tu proyecto Django en Python, recibe alertas por correo o Slack, y organiza tus logs en uWSGI para depurar rápido y con confianza.
¿Cómo integrar Sentry en Django de forma segura?
Sentry se integra en tu proyecto para capturar excepciones con contexto. Evitas mostrar detalles sensibles en el navegador y centralizas la información de fallos con trazas, URL, transacción y status code.
- Crea tu cuenta en sentry.io y presiona Get Started. Digita tus datos y elige dónde guardar la información: Europa o Estados Unidos. Activa si deseas recibir actualizaciones y acepta términos. Presiona Start.
- Selecciona el framework: Django. Entra en “Configurar SDK” para ver cómo instalar dependencias.
- Instala las dependencias con
pip en tu entorno virtual activo. Hazlo en el proyecto. Recomendado hacerlo en local, aunque también puedes en el servidor.
- Copia la configuración sugerida al final de
settings.py. Guarda los cambios.
- En
urls.py, agrega un endpoint de prueba con un error controlado: división de 1/0. Así validas que Sentry recibe eventos.
- Recarga tu servidor uWSGI. Visita la ruta de prueba (
sentry debug) para forzar el error y confirmar que Sentry “recibe” el evento.
¿Qué datos de error muestra Sentry?
Al abrir el evento verás detalles accionables:
- URL y transacción para ubicar la petición exacta.
- Status code devuelto por el servidor.
- Mensaje del intérprete, por ejemplo: invalid syntax en el archivo y número de línea (como la línea 30 por una coma faltante). Corrige, guarda y recarga.
¿Cómo configurar alertas efectivas?
Sentry permite activar alertas por correo y también integrarlas con Slack. Además, los mismos errores quedan en los logs del servidor si ya los tienes configurados. Así mantienes visibilidad duplicada: panel centralizado y archivos del sistema.
¿Cómo verificar errores también en los logs del servidor?
Además de Sentry, revisa tus archivos en /var/logs (por ejemplo, en uwsgi y en la app de deployment). Allí verás el rastro completo del servidor.
- Ejecuta
sudo cut sobre la ruta de logs para leer el contenido.
- Identifica mensajes como invalid syntax al olvidar una coma. Verás todo lo que ocurre dentro del servidor.
- Ten presente que los archivos crecen con el uso de los usuarios. Conviene agrupar por aplicación y por fecha para mantener control y limpieza.
¿Cómo rotar y agrupar logs en uWSGI?
La rotación facilita borrar los de “X días” sin tocar los actuales.
- Edita la configuración en
etc/uwsgi/apps-enable de tu aplicación.
- Agrega
logsuffix con una expresión que añade un número por cada día al final del archivo.
- Agrega
daemonize para crear el archivo con marca de tiempo al iniciar uWSGI y al cambio de día.
- Define la ruta de logs que ya usas. Guarda y realiza
restart.
- Valida con
status: verás que corre y los procesos activos (por ejemplo, cuatro procesos).
¿Qué habilidades y conceptos consolidar para el monitoreo?
Domina un flujo de observabilidad que te ahorra tiempo y reduce riesgo al desplegar.
- Monitoreo de logs: lectura en
/var/logs y control de crecimiento por tráfico.
- Integración de Sentry: cuenta en sentry.io, Get Started, Start y “Configurar SDK”.
- Buenas prácticas de entorno:
pip install con el entorno virtual activado.
- Configuración en Django: edición de
settings.py y urls.py para generar errores de prueba.
- Depuración guiada: interpretación de URL, transacción, status code y mensajes como invalid syntax con línea exacta.
- Alertas operativas: notificaciones por correo y Slack para responder rápido.
- uWSGI avanzado: parámetros
logsuffix y daemonize para rotación por día y marcas de tiempo.
- Mantenimiento seguro: reinicio, validación con
status y verificación de procesos concurrentes.
¿Quieres compartir cómo organizas tus alertas y rotación de logs en producción? Deja tus ideas y dudas para seguir mejorando juntos.