Registro y alertas

Un paquete que proporciona dos submódulos de registro que envían mensajes de registro de Drupal a direcciones de correo electrónico y/o al registro de errores del servidor web según niveles de severidad configurables.

logging_alerts
891 sites
25
drupal.org

Overview

El módulo Logging and alerts es una solución integral de registro para Drupal que extiende las capacidades de registro del núcleo. Proporciona dos submódulos independientes que pueden usarse por separado o juntos para manejar los mensajes de watchdog/registro de Drupal.

El submódulo Email Logging and Alerts permite a los administradores recibir notificaciones por correo electrónico para entradas de registro, con la capacidad de configurar diferentes direcciones de correo electrónico para diferentes niveles de severidad. Esto es particularmente útil para recibir alertas críticas en dispositivos móviles mientras los avisos menos urgentes van al correo electrónico regular.

El submódulo Web Server Logging and Alerts escribe los mensajes de registro de Drupal en el registro de errores del servidor web (a través de la función error_log() de PHP), facilitando la integración del registro de Drupal con herramientas de gestión de registros a nivel de servidor y sistemas de registro centralizados.

Ambos submódulos soportan los niveles de severidad de registro RFC 5424: Emergencia, Alerta, Crítico, Error, Advertencia, Aviso, Informativo y Depuración.

Features

  • Enviar alertas por correo electrónico para mensajes de registro de Drupal con destinatarios configurables por nivel de severidad
  • Enrutar diferentes niveles de severidad a diferentes direcciones de correo electrónico (ej., alertas críticas al buscapersonas, avisos al correo regular)
  • Incluir información de depuración opcional en las alertas de correo: $_SERVER, $_ENV, $_REQUEST, $_COOKIE, $_GET, $_POST, $_SESSION y debug_backtrace()
  • Limitar alertas de correo similares consecutivas para prevenir inundación de correos durante tormentas de errores
  • Configurar umbral de similitud y ventana de tiempo para detectar alertas duplicadas
  • Escribir mensajes de registro de Drupal en el registro de errores del servidor web para integración con gestión externa de registros
  • Plantillas de correo personalizables a través del sistema de temas Twig con sugerencias de plantilla basadas en severidad y tipo de registro
  • Información de depuración extensible mediante hook_emaillog_debug_info_alter()

Use Cases

Alertas móviles de errores críticos

Configure los niveles de severidad Emergencia, Alerta y Crítico para enviar a un correo de teléfono móvil o pasarela SMS, mientras que los niveles Error y Advertencia van a una bandeja de entrada de correo estándar. Esto asegura notificación inmediata de problemas críticos sin sobrecarga de la bandeja de entrada por mensajes menos urgentes.

Depuración en desarrollo

Habilite la información de depuración $_REQUEST, $_SESSION y debug_backtrace() para los niveles Advertencia y Error durante el desarrollo. Use la función de reemplazo de backtrace para mantener tamaños de correo manejables mientras aún proporciona contexto de traza de pila.

Gestión centralizada de registros

Use Web Server Logging para escribir todos los mensajes Error y Crítico en el registro de errores del servidor, donde pueden ser recolectados por herramientas de agregación de registros como el stack ELK, Splunk o servicios de registro en la nube para monitoreo y alertas centralizados.

Prevención de tormentas de errores

Configure los límites de envío de correo para prevenir inundación de bandeja de entrada durante cascadas de errores. Establezca máximo de correos similares en 5, período consecutivo en 5 minutos y nivel de similitud en 0.9 para recibir como máximo 5 alertas similares dentro de cualquier período de 5 minutos.

Estrategia de registro dual

Habilite ambos submódulos: use Email Logging para niveles de Emergencia a Error para recibir notificaciones inmediatas, y Web Server Logging para todos los niveles para mantener un registro completo del lado del servidor para análisis forense.

Plantillas de correo personalizadas por tipo de registro

Cree sobrescrituras de plantillas de tema como emaillog--error--security.html.twig para proporcionar formato personalizado para combinaciones específicas de nivel de severidad y canal de registro, permitiendo formatos de correo especializados para alertas relacionadas con seguridad.

Tips

  • Use diferentes direcciones de correo electrónico para diferentes niveles de severidad - enrute alertas críticas a un buscapersonas o pasarela SMS mientras los mensajes menos urgentes van a una bandeja de entrada compartida.
  • Comience con información de depuración mínima y agregue más según sea necesario - datos de depuración excesivos pueden ralentizar el registro y crear correos muy grandes.
  • El formato de registro de errores está delimitado por barras verticales para fácil análisis por herramientas de análisis de registros: SiteName|URL|severity=X|type=X|ip=X|uri=X|referer=X|uid=X|link=X|message=X
  • Cree plantillas de correo personalizadas sobrescribiendo emaillog.html.twig o usando sugerencias de plantilla como emaillog--critical.html.twig para formato específico por severidad.
  • Combine ambos submódulos: use correo electrónico para notificación humana inmediata y registro de errores para agregación de registros legible por máquinas.
  • Pruebe la entrega de correo activando un mensaje de watchdog con su nivel de severidad configurado usando el módulo devel o código personalizado.
  • La detección de similitud usa la función similar_text() de PHP - establezca el umbral basándose en sus patrones de mensaje específicos para prevenir duplicados efectivamente sin perder errores únicos.

Technical Details

Admin Pages 2
Registro y alertas por correo electrónico /admin/config/development/emaillog

Configura direcciones de correo electrónico para recibir alertas de registro en diferentes niveles de severidad, información de depuración opcional a incluir y configuraciones para prevenir inundación de correos por alertas similares.

Registro y alertas del servidor web /admin/config/development/errorlog

Configura qué niveles de severidad deben escribirse en el registro de errores del servidor web.

Permisos 1
Administrar configuración del sitio

Requerido para acceder a las páginas de configuración tanto de Email Logging como de Web Server Logging. Este es un permiso del núcleo, no definido por este módulo.

Hooks 2
hook_emaillog_debug_info_alter

Permite a los módulos alterar la información de depuración que se adjunta a las alertas de correo electrónico. Esto puede usarse para agregar información de depuración personalizada o modificar/eliminar información existente.

hook_mail (emaillog)

Implementa hook_mail para construir mensajes de alerta por correo electrónico. El módulo usa la clave 'alert' y construye el asunto y cuerpo usando la plantilla del tema emaillog.

Troubleshooting 5
Los correos electrónicos no se están enviando para los mensajes de registro

Verifique que una dirección de correo electrónico esté configurada para el nivel de severidad relevante en /admin/config/development/emaillog. También asegúrese de que el sistema de correo de su sitio esté configurado correctamente y la dirección de correo del sitio esté establecida en /admin/config/system/site-information.

Recibiendo demasiadas alertas de correo similares

Configure la sección de Límites de envío de correo electrónico: establezca un número máximo de correos similares consecutivos, un período para considerar correos consecutivos y un umbral de similitud. Por ejemplo: máximo 3 correos, ventana de 10 minutos, nivel de similitud 0.85.

Las alertas de correo contienen información de depuración excesiva causando problemas de rendimiento

Habilite 'Reemplazar valores de argumentos de debug_backtrace() con tipos' para reducir el tamaño del backtrace. Limite qué variables de depuración se incluyen desmarcando opciones innecesarias en la matriz de información de depuración.

Los mensajes de registro no aparecen en el registro de errores del servidor web

Verifique que los niveles de severidad relevantes estén marcados en /admin/config/development/errorlog. Revise su configuración de registro de errores de PHP y del servidor web para asegurar que la salida de error_log() esté siendo capturada.

La línea de asunto del correo es genérica en lugar de mostrar el mensaje de registro

Asegúrese de que 'Usar asunto de correo heredado' esté desmarcado en la sección de Configuraciones heredadas. El formato moderno incluye una versión truncada del mensaje de registro en la línea de asunto.

Security Notes 4
  • La información de depuración como $_SESSION, $_COOKIE, $_POST y $_REQUEST puede contener datos sensibles del usuario incluyendo tokens de sesión y envíos de formularios - solo habilite estos para desarrollo o cuando sea absolutamente necesario para depuración.
  • Las alertas de correo se envían en texto plano y pueden atravesar redes no cifradas - evite incluir información de depuración altamente sensible en sistemas de producción.
  • El módulo usa el sistema de correo de Drupal que respeta los manejadores de correo configurados - asegúrese de que su backend de correo proporcione seguridad apropiada (TLS, autenticación) para datos de registro sensibles.
  • Revise la ubicación y permisos de salida del registro de errores para asegurar que la información sensible en los mensajes de registro no esté expuesta a usuarios no autorizados.