¿Qué es Syslog? Una introducción al protocolo de registro del sistema

Ezequiel Mancilla septiembre 2, 2024
- 7 min read

Es posible que hayas escuchado el término "Syslog" varias veces y que te haya parecido un término muy técnico que no necesitabas entender. Pero en realidad es muy útil conocerlo, así que hemos elaborado esta guía introductoria al "Protocolo de registro del sistema", también llamado Syslog.

¿Qué es un servidor Syslog?

Como su nombre lo indica, se utiliza para que dispositivos como routers, switches, firewalls, puntos de acceso Wi-Fi y servidores Linux generen sus propios registros. Los servidores de Windows usan registros de eventos, pero pueden utilizarse junto con los servidores Syslog. Su función es almacenar eventos o mensajes de registro localmente dentro del dispositivo elegido y enviar esta información a un servidor Syslog para obtener, ordenar y filtrar todos los registros y datos que contiene. 

En términos simples, un dispositivo o servidor de red que ya está en una empresa puede ser configurado para que genere mensajes Syslog y luego reenviarlos a un servidor Syslog o Daemon. Esto permite supervisar y hacer un seguimiento preciso de los dispositivos conectados a la red, además de evaluar adecuadamente las cuestiones o los problemas que deberían arreglar, siempre que aparezcan en los registros. 

A continuación, se envía un mensaje desde el dispositivo inicial al servidor (también denominado colector) utilizando UDP, que es un protocolo que no requiere conexión. En aras de la rapidez y la facilidad de comprensión, estos mensajes se mandan como textos cortos que no superan los 1024 bytes.

Sin embargo, al utilizar UDP, el emisor no recibe ningún tipo de acuse de recibo, lo que implica que los paquetes podrían perderse durante la transmisión. 

Dicha complicación puede ser fácilmente sorteada usando un servidor (o Daemon) para recoger, ordenar, clasificar y configurar la alerta de los eventos y su localización dentro de la red. 

Así, contar con herramientas como Syslog y su registro de datos de información brinda a las empresas la posibilidad de elaborar informes, diagramas y gráficos para visualizar con precisión elementos y aspectos de los sistemas y obtener una mejor visualización de la infraestructura de IT. 

¿Cuándo se utiliza Syslog? 

Quizás la mayor duda de la gente que está acostumbrada a usar SNMP es "¿Para qué sirve Syslog si las trampas de SNMP ya existen y tienen una funcionalidad similar?" Hay algo de verdad en esto, ya que ambos se utilizan para enviar alertas y mensajes a los servidores centrales sin necesidad de hacer sondeos para conocer su estado. 

Sin embargo hay una diferencia bastante grande y es que los traps SNMP tienen formatos especiales predefinidos contenidos en un archivo MIB. En el caso de que una interfaz de un switch se caiga, el archivo MIB define instantáneamente un mensaje trap "ifDown" que comunica información importante que incluye, pero no se limita a, cosas como la interfaz específica que se cayó, por ejemplo. Esto permite a los usuarios del software saber de antemano qué información tendrá el mensaje en su contenido. Sin embargo, este no es siempre el caso.

Los traps SNMP son más adecuados para eventos que están bien definidos, como los reinicios de la interfaz o algunos dispositivos muy específicos conectados a la red. 

Los eventos Syslog, por otro lado, son mucho mejores para eventos que son, por naturaleza, más amplios y de alcance más general, y por lo tanto más difíciles de predecir.

Sin embargo, la naturaleza amplia de los mensajes Syslog también puede ser un gran obstáculo, ya que sería todo un reto analizar los eventos largos y numerosos de los registros de tantos sistemas diferentes de varios proveedores y, al mismo tiempo, darles sentido a todos ellos. ¿Cómo saber qué mensajes representan determinadas funciones?, ¿Cuáles son sólo mensajes informativos y cuáles son eventos críticos a los que hay que atender inmediatamente? 

Para hacer frente a estas cuestiones, el protocolo Syslog (que se define en el RFC 5424) proporciona a estos mensajes de forma libre campos especiales denominados "Facility" y "Severity", que tienen sus propios códigos de identificación para facilitar el análisis. 

Códigos “Facility” y “Severity”

Los valores de “Severity” son bastante sencillos: un único número entre 0 y 7 muestra el nivel de importancia de un mensaje. 

Código numérico Severidad Significado
1 Emergencia El sistema es inutilizable
2 Alerta Actuar de inmediato
3 Crítico Condiciones críticas
4 Error  Condiciones de error
5 Advertencia Condiciones de advertencia
6 Aviso Condición normal pero significativa
7 Informativo Mensajes informativos
8 Depuración Mensajes de nivel de depuración

Los códigos de las instalaciones necesitan una explicación un poco más detallada. En sus inicios, la implementación del software del servidor Syslog solía limitarse a colocar todos los mensajes entrantes en uno o varios archivos de registro. El sistema del servidor obtenía el código de Facility para clasificar los mensajes pertinentes en el mismo archivo.

Hoy en día, las implementaciones más modernas vuelcan todos los mensajes en una base de datos común compartida y los códigos Facility funcionan como claves de búsqueda. Además, estos códigos se expresan con valores numéricos de forma similar a los códigos Severity.

¿Cómo se transporta el Syslog?

Las dos formas más utilizadas para transportar los mensajes Syslog son el método más anticuado UDP o a través de un transporte de red TSL encriptado sobre TCP. 

Método UDP

Cuando se utiliza el método UDP, los mensajes se ponen en la parte de datos de un paquete UDP y se envían directamente al servidor a través del puerto UDP 514. Cada mensaje suele caber en un solo paquete. UDP no tiene estado ni sesión, por lo que no se proporciona ningún acuse de recibo y los paquetes simplemente se retransmiten y se envían a la red.

El problema más evidente de este método es que cualquier tipo de contratiempo con la red podría impedir que el paquete se entregue, y es posible que nunca se sepa que la red está caída (porque no hay forma de que el mensaje sea reconocido y retransmitido a quien lo envió en primer lugar). En consecuencia, los paquetes cruciales corren el riesgo de dañarse o directamente perderse en tránsito. 

Otro aspecto del transporte UDP Syslog que hay que tener en cuenta es que no está encriptado. Esto supone un riesgo para la seguridad del puesto de trabajo digital. Ergo, los paquetes podrían ser fácilmente interceptados e incluso falsificados. Así que, a menos que los paquetes UDP Syslog se envíen con la protección de una VPN encriptada, se desaconseja su uso a través de infraestructuras públicas de Internet. 

Método TCP

Este método difiere en que está encriptado y basado en la sesión. Además, esta versión del transporte de Syslog utiliza la seguridad TLS. En este caso se usa el puerto TCP Syslog 6514 y tiene el mismo tipo de certificados de autenticación que HTTPS. 

Dado que TCP tiene un proceso basado en la sesión, los dispositivos conectados remotamente simplemente abrirán una sesión TCP conectada con el servidor y normalmente la mantendrán activa mientras se entregan los mensajes en cola. Un ejemplo de esto podrían ser los firewalls, que tienen una afluencia regular de mensajes Syslog que llegan en todo momento. En consecuencia, se necesita una conexión ininterrumpida. 

Utilizar TCP sobre UDP tiene muchas ventajas. Una de ellas es que, como las sesiones están cifradas, es prácticamente imposible leerlas mientras se envían. Además, como cada dispositivo tiene un certificado único, el servidor puede autenticar que los dispositivos no han sido víctimas de falsificación o que no han sido secuestrados.

Por último, pero no menos importante, las sesiones basadas en TCP significan que la entrega de cada mensaje está completamente garantizada, e incluso si se pierden o se dañan en el tránsito, se pueden retransmitir sin comprometer el mensaje. 

Preguntas frecuentes

¿Qué es Syslog?

Syslog es un estándar para el registro de mensajes. Permite separar el software que genera los mensajes, el sistema que los almacena y el software que los informa y analiza. Cada mensaje se etiqueta con un código de instalación, que indica el tipo de sistema que genera el mensaje, y se le asigna un nivel de Gravedad.

¿Cómo actúa un puerto Syslog? 

Un servidor Syslog abre el puerto 514 (método UDP) o el puerto 6514 (método TCP) y toma las notificaciones de eventos Syslog entrantes generadas por clientes Syslog remotos.