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

61

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

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

¿Hay alguna diferencia entre rsyslog y rsyslogd?

StackUser
fuente
rsyslogd con la letra D es el demonio
rsyslogd
3
Para completar, agregaré una diferencia que encontré que puede o no impactarle. syslog-ng usa fopen mientras que rsyslog usa fappend. Esto es importante si chattr +asus archivos syslog. La mayoría de la gente no hace esto, solo tuve un caso de uso especial y así es como me enteré. Acabo de hacer temblar a mucha gente.
Aaron

Respuestas:

52

Básicamente, son todos iguales, en la forma en que todos 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 solo admite UDP para el transporte, por lo que no garantiza la entrega de los mensajes.

Luego vino syslog-ngen 1998. Extiende el syslogprotocolo básico con nuevas características como:

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

Luego vino Rsyslogen 2004. Extiende el syslogprotocolo con nuevas características como:

  • Soporte de protocolo RELP
  • Soporte de operación amortiguado

Digamos que hoy son tres proyectos concurrentes que han crecido por separado en las versiones, pero también crecieron en paralelo con respecto a lo que estaban haciendo los vecinos.

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

krisFR
fuente
1
Para el registro, el syslog de OpenBSD puede hacer TCP y TLS (y UDP)
Neil McGuigan
32

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

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

    • Puede escuchar conexiones TCP / UDP / ..., con restricciones (puertos, IP 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 closed.log)
    • Puede descartar el mensaje después de una o más reglas. Visite http://www.rsyslog.com, que es muy bueno.
  • Syslog-ng es "Next-Gen". Creo que es la mejor manera de administrar registros: todo es objeto (origen, destino, filtro y la regla de reenvío) y la sintaxis es clara. Dudo en términos de funcionalidad que rsyslogy syslog-ngson diferentes.

moutonjr
fuente
8
Yo diría que tanto syslog-ng como rsyslog son 'próxima generación', o al menos el reemplazo más nuevo para el syslog más antiguo. Ambos son comparables en términos de características, pero la sintaxis de ambos es muy diferente. syslog-ng tiene su propia sintaxis única, mientras que la sintaxis de rsyslog es más parecida a la sintaxis anterior de syslog.
Stefan Lasiewski
99
Y luego está journalctl/journald
Mausy5043
9

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

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

b0ti
fuente
3

Todos son demonios de 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 soportaba y extendía su sintaxis. En los últimos años, rsyslog también comenzó a admitir un formato de configuración más nuevo. Por ahora, es realmente difícil comparar los dos sin entrar en detalles y comenzar guerras de llamas.

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

Radu Gheorghe
fuente