Synology «Centro de registros» con Python

¡Hola a tod@s!

En este post, vamos a hablar sobre cómo registrar los logs de nuestros scripts utilizando los recursos de Synology, más específicamente, con la aplicación Centro de registros. Esta app está disponible en el Centro de Paquetes de Synology y es ideal para centralizar los registros de diferentes servicios, incluyendo scripts personalizados.

¿Por qué son importantes los logs?

Los logs son esenciales para monitorizar y analizar el comportamiento de nuestros scripts y aplicaciones. Nos permiten detectar errores, evaluar el rendimiento y asegurar el correcto funcionamiento del código. Tener un sistema centralizado para gestionar los logs facilita la tarea de seguimiento, sobre todo cuando trabajamos con múltiples servicios o scripts.

Preparando la Configuración del Centro de Registros

Una vez que hayas instalado la app Centro de registros, verás que tiene varias secciones:

  1. Visión General: Un resumen rápido de la actividad de registros.
  2. Registros: Aquí se muestran los logs de Synology y otros servicios configurados.
  3. Notificaciones: Para configurar alertas basadas en eventos específicos.
  4. Configuración de Archivo: Aquí es donde configuramos la ubicación para almacenar los logs, estableciendo reglas y formatos de archivado. Puedes especificar dónde se guardarán los archivos y cuánto tiempo se conservarán.
  5. Envío de Registros: Permite enviar logs desde tu Synology a otros servidores y tb nos sirve para hacer nuestras pruebas.
  6. Recibiendo Registros: Permite configurar la recepción de logs externos (esto lo veremos con más detalle a continuación).
  7. Historial de Configuración: Un registro de los cambios de configuración realizados.

Configurando la Recepción de Logs

Nos situamos en la sección Recibiendo registros. Aquí es donde configuramos Synology para recibir logs desde scripts o aplicaciones externas.

  1. Ve a Recibiendo registros.
  2. Crea una nueva entrada seleccionando Crear.
    • Formatos de Registro Disponibles:
      • BSD: Un formato de registro simple y comúnmente usado en sistemas Unix.
      • IETF: Un formato de registro más moderno, basado en estándares más estrictos y recomendados para compatibilidad a largo plazo.
      • Formato Personalizado: Te permite definir un formato de registro específico según las necesidades de tu aplicación.
  3. Selecciona el Protocolo de Transferencia (dejaremos UDP por defecto) y configura el número de Puerto.

Prueba de Envío de Logs

Una vez configurada la recepción de logs, puedes hacer una prueba de envío desde la sección Envío de registros:

  1. En el menú de Envío de registros, configura un servidor localhost y el puerto que especificaste en la sección anterior.
  2. Haz clic en Enviar registro de prueba. Si todo está correctamente configurado, recibirás una confirmación de que el registro ha sido enviado.
  3. Ve a la pantalla de Registros para verificar que el log ha sido recibido.Nota: No es necesario guardar la configuración si solo estás haciendo una prueba de envío.

Visualización de Logs Externos

En la sección Registros, puedes seleccionar De otros servidores en el desplegable para visualizar logs recibidos de fuentes externas, como scripts o aplicaciones de terceros. Esto es útil si estás centralizando registros de múltiples dispositivos o servidores. Eso si, va todo en un bloque, puedes buscar por contenido de mensajes que tb te puede ahorrar tiempo y exportar el archivo a html, la verdad que es cómodo.

Ejemplo de Logging en Python para Enviar Registros a Synology

En Python, podemos utilizar la librería logging, que nos permite gestionar logs de manera eficiente. Además, podemos configurar un handler para enviar estos registros directamente al Centro de registros de Synology.

Un ejemplo de código en python:

import logging
import logging.handlers
import sys

def get_logger():
    # LOGGING
    logger = logging.getLogger()
    if not logger.handlers:
        h = logging.handlers.SysLogHandler(address=("192.168.1.10", 514), facility='user')
        logger.setLevel(logging.DEBUG)
        logger.addHandler(h)
    
    return logger

logger.info('Test de logging')
  1. SysLogHandler: Este es el handler que utilizamos para enviar los logs al Centro de registros de Synology. Debes cambiar la dirección IP (192.168.1.10) por la IP de tu servidor Synology, y el puerto (514) debe coincidir con el que configuraste para recibir los logs.
  2. Nivel de Log: Se establece en DEBUG, pero puedes cambiarlo a INFOWARNINGERROR, etc., dependiendo del nivel de detalle que desees en tus logs.
  3. Uso: Una vez configurado el logger, simplemente puedes usar logger.info()logger.debug()logger.error(), etc., para enviar diferentes tipos de mensajes a tu Synology.

Y hasta aquí el post. Con esto ya sabemos algo más de recuperar los logs fuera de nuestro script.

¡Espero que os haya sido útil!

Salu2!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *