¿Tienes en casa un router, un switch, un NAS o varios contenedores Docker y estás cansado de entrar uno a uno para ver qué falla cuando hay un problema? La solución definitiva es centralizar los logs.
En este tutorial te voy a enseñar cómo transformar tu Raspberry Pi en un servidor Syslog universal usando Docker. En menos de 5 minutos, tendrás un sistema capaz de recibir, organizar por IP y almacenar en tiempo real todos los eventos de tu red local. ¡Vamos a lío!
¿Por qué usar Syslog y Docker?
-
Persistencia: Si un contenedor o un router se reinicia o se corrompe, sus logs de error ya están a salvo en tu almacenamiento local.
-
Organización: Adiós al caos. El servidor creará automáticamente carpetas separadas para cada dirección IP que envíe datos.
-
Ligereza: Usaremos una infraestructura basada en Alpine Linux, lo que significa que el consumo de RAM y CPU en tu Raspberry Pi será prácticamente inexistente.
Paso 1: Preparar el archivo de configuración (rsyslog.conf)
Rsyslog necesita saber qué «puertas» abrir y cómo organizar la información que le llega. Para ello, crea una carpeta en tu Raspberry Pi (por ejemplo, en ./syslog) y dentro crea un archivo llamado rsyslog.conf con el siguiente contenido:
# Cargar módulos para escuchar por UDP y TCP en el puerto estándar
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
# Regla mágica: Organizar los logs en carpetas según la IP del dispositivo
$template RemoteLogs,"/var/log/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& ~
Nota técnica: Hemos configurado la plantilla usando
%FROMHOST-IP%. Esto es clave en redes domésticas, ya que si tus dispositivos no tienen un DNS local configurado, los identificará limpiamente por su dirección IP (ej.192.168.1.1).
Paso 2: El despliegue con Docker Compose
Para asegurar la máxima compatibilidad con la arquitectura ARM de la Raspberry Pi, lo más limpio y eficiente es construir una imagen personalizada «on-the-fly» basada en Alpine.
En la misma carpeta, crea tu archivo docker-compose.yml:
services:
syslog:
build:
context: .
dockerfile: inline
inline: |
FROM alpine:latest
RUN apk add --no-cache rsyslog
EXPOSE 514/udp 514/tcp
ENTRYPOINT ["rsyslogd", "-n"]
container_name: rsyslog-server
ports:
- "514:514/tcp"
- "514:514/udp"
volumes:
- ./rsyslog.conf:/etc/rsyslog.conf
- ./syslog_externos:/var/log
restart: unless-stopped
Lanzar el servidor
Una vez creados los dos archivos, abre la terminal en esa ruta y ejecuta:
docker compose up -d
Docker compilará la imagen en un par de segundos y levantará el servicio. Puedes verificar que está corriendo y esperando datos con el comando docker logs -f rsyslog-server.
Paso 3: Configurar tus dispositivos externos (Ejemplo: Router o AP)
Con el servidor escuchando en la IP de tu Raspberry Pi (por ejemplo, 192.168.1.243), es hora de enviarle datos.
Ve al panel de administración de tu router, punto de acceso o NAS, busca la sección de «Logs del sistema externos» o «Remote Syslog» y configúralo de la siguiente manera:
-
Servidor de logs / IP:
192.168.1.243(La IP de tu RPi). -
Puerto:
514 -
Protocolo:
UDP(Es el estándar recomendado para no penalizar el rendimiento del cliente). -
Nivel de registro: Si estás buscando un fallo concreto, selecciona
7 - Debug. Para el día a día, con5 - Noticeo6 - Informationalbastará.
Paso 4: Verificar que todo funciona
Si vuelves a la terminal de tu Raspberry Pi y revisas el contenido de la carpeta que mapeamos en el volumen, ocurrirá la magia:
ls -R ./syslog_externos
Verás cómo rsyslog ha creado de forma automática una estructura limpia de directorios. Por ejemplo:
-
./syslog_externos/192.168.1.1/(Los logs de tu router). -
./syslog_externos/192.168.1.243/(Los logs locales o de tus contenedores).
Para ver los mensajes que entran en tiempo real, simplemente lanza un:
tail -f ./syslog_externos/192.168.1.1/syslog.log
Conclusión y buenas prácticas
¡Ya lo tienes! Un centro de control de logs robusto, escalable y bajo tu propio tejado.
Un último consejo: Si vas a mantener el nivel de registro en Debug, ten en cuenta que los archivos de texto crecerán rápidamente. Es muy recomendable que configures logrotate en el sistema de tu Raspberry Pi o limites el tamaño de los volúmenes para evitar sorpresas de almacenamiento lleno en el futuro.
¿Tienes alguna duda con la configuración de algún dispositivo concreto? ¡Te leo en los comentarios!

Deja una respuesta