Cómo configurar Sentry en Django

Resumen

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.