¿Cuál es la diferencia entre syslog, rsyslog y syslog-ng?

¿Cuál es la diferencia entre syslog, rsyslog y syslog-ng?

Estoy un poco confundido con syslog, rsyslog y syslog-ng.

¿De dónde puedo obtener el código fuente syslog()?

¿Existe alguna diferencia entre rsyslog y rsyslogd?

Respuesta1

Básicamente, son todos iguales, en el sentido de que permiten el registro de datos de diferentes tipos de sistemas en un repositorio central.

Pero son tres proyectos diferentes, cada proyecto intenta mejorar el anterior con más confiabilidad y funcionalidades.

El Syslogproyecto fue el primer proyecto. Comenzó en 1980. Es el proyecto raíz del Syslogprotocolo. En este momento Syslog es un protocolo muy simple. Al principio sólo soporta UDP para el transporte, por lo que no garantiza la entrega de los mensajes.

El siguiente llegó syslog-ngen 1998. Amplía syslogel protocolo básico con nuevas características como:

  • filtrado basado en contenido
  • Iniciar sesión directamente en una base de datos
  • TCP para transporte
  • Cifrado TLS

El siguiente llegó Rsyslogen 2004. Amplía syslogel protocolo con nuevas características como:

  • Soporte del protocolo RELP
  • Soporte de operación en búfer

Digamos que hoy son tres proyectos concurrentes que han ido creciendo por separado según versiones, pero también han crecido en paralelo respecto a lo que hacían los vecinos.

Personalmente creo que a día de hoy syslog-nges la referencia en la mayoría de los casos, ya que es el proyecto más maduro que ofrece las principales funcionalidades que puedas necesitar, además de una instalación y configuración fácil y completa.

Respuesta2

Estos son 3 tipos diferentes de administradores de registros: permiten que su sistema recopile filtros y transmita/almacene registros.

  • Syslog(demonio también llamado sysklogd) es el LM predeterminado en las distribuciones comunes de Linux. Ligero pero no muy flexible, puede redirigir el flujo de registros ordenado por instalación y gravedad a archivos y a través de la red (TCP, UDP).
  • rsysloges una versión "avanzada" sysklogddonde el archivo de configuración sigue siendo el mismo (puede copiar un syslog.confarchivo directamente rsyslog.confy funciona); pero viene con muchas cosas nuevas e interesantes:

    • Puedes escuchar conexiones TCP/UDP/..., con restricciones (puertos, IPs de origen)
    • Puedes cargar muchos módulos.
    • Puede discriminar el filtrado de registros por programa, fuente, mensaje, pid, etc. (por ejemplo, cada mensaje etiquetado con el mensaje "conexión cerrada" al archivo cerrado.log)
    • Puedes descartar el mensaje después de una o más reglas Visitarhttp://www.rsyslog.comque es muy bueno por cierto
  • Syslog-ng es "próxima generación". Creo que es la mejor manera de administrar los registros: todo es objeto (origen, destino, filtro y la misma regla de reenvío) y la sintaxis es clara. Dudo en términos de funcionalidad que rsyslogy syslog-ngsean diferentes.

Respuesta3

¿De dónde puedo obtener el código fuente de syslog()?

Esto es proporcionado porglibco las implementaciones de libc en otras versiones de Unix. Esta llamada básicamente envía su mensaje al socket de dominio syslog Unix /dev/log. Este socket normalmente lo crea el registrador del sistema (por ejemplo, rsyslog, syslog-ng, nxlog, etc.).

Respuesta4

Todos son demonios syslog, donde rsyslog y syslog-ng son reemplazos más rápidos y con más funciones para el syslogd tradicional (en su mayoría sin mantenimiento). syslog-ng comenzó desde cero (con un formato de configuración diferente), mientras que rsyslog era originalmente una bifurcación de syslogd, que admitía y ampliaba su sintaxis. En los últimos años, rsyslog también comenzó a admitir un formato de configuración más nuevo. A estas alturas, es realmente difícil comparar los dos sin entrar en detalles y comenzar guerras incendiarias.

Syslog en general es bastante confuso ya que pueden ser varias cosas. Tuve la oportunidad de desambiguar aquí:https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/

información relacionada