Qual è la differenza tra syslog, rsyslog e syslog-ng?


61

Sono un po 'confuso in syslog, rsyslog e syslog-ng.

Da dove posso ottenere il codice sorgente syslog()?

C'è qualche differenza tra rsyslog e rsyslogd?


rsyslogd con la lettera D è il demone
rsyslogd

3
Per completezza, aggiungerò una differenza che ho riscontrato che potrebbe o meno avere un impatto su di te. syslog-ng usa fopen mentre rsyslog usa fappend. Questo importa se i chattr +atuoi file syslog. Molte persone non lo fanno, ho appena avuto un caso d'uso speciale ed è così che ho scoperto. Ho appena fatto rabbrividire molte persone.
Aaron,

Risposte:


52

Fondamentalmente, sono tutti uguali, nel modo in cui tutti consentono la registrazione di dati da diversi tipi di sistemi in un repository centrale.

Ma sono tre progetti diversi, ogni progetto cerca di migliorare il precedente con più affidabilità e funzionalità.

Il Syslogprogetto è stato il primo progetto. È iniziato nel 1980. È il progetto principale da Syslogprotocollo. Al momento Syslog è un protocollo molto semplice. All'inizio supporta solo UDP per il trasporto, in modo da non garantire la consegna dei messaggi.

Il prossimo è arrivato syslog-ngnel 1998. Estende il syslogprotocollo di base con nuove funzionalità come:

  • filtro basato sul contenuto
  • Accedere direttamente a un database
  • TCP per il trasporto
  • Crittografia TLS

Il prossimo è arrivato Rsyslognel 2004. Estende il syslogprotocollo con nuove funzionalità come:

  • Supporto del protocollo RELP
  • Supporto operativo bufferizzato

Diciamo che oggi sono tre progetti simultanei che sono cresciuti separatamente su versioni, ma anche cresciuti in parallelo riguardo a ciò che i vicini stavano facendo.

Personalmente penso che oggi syslog-ngsia il riferimento nella maggior parte dei casi, in quanto è il progetto più maturo che offre le funzionalità principali di cui potresti aver bisogno, oltre a un'installazione e una configurazione semplici e complete.


1
Per la cronaca, il syslog di OpenBSD può eseguire TCP e TLS (e UDP)
Neil McGuigan,

32

si tratta di 3 diversi tipi di gestori dei registri: consente al sistema di raccogliere filtri e trasmettere / archiviare registri.

  • Syslog(demone anche chiamato sysklogd) è il LM predefinito nelle comuni distribuzioni Linux. Leggero ma non molto flessibile, è possibile reindirizzare il flusso di registro ordinato per struttura e gravità su file e su rete (TCP, UDP).
  • rsyslogè una versione "avanzata" in sysklogdcui il file di configurazione rimane lo stesso (è possibile copiare un syslog.conffile direttamente rsyslog.confe funziona); ma hai un sacco di nuove fantastiche cose in arrivo:

    • È possibile ascoltare le connessioni TCP / UDP / ..., con restrizioni (porte, IP di origine)
    • Puoi caricare molti moduli
    • È possibile discriminare il filtro dei registri per programma, origine, messaggio, pid ecc. (Ad esempio, ogni messaggio taggato con il messaggio "connessione chiusa" al file chiuso.log)
    • Puoi scartare il messaggio dopo una o più regole Visita http://www.rsyslog.com che è davvero molto buono
  • Syslog-ng è "Next-Gen". Penso che sia il modo migliore per gestire i log: tutto è oggetto (sorgente, destinazione, filtro e la stessa regola di inoltro) e la sintassi è chiara. Dubito in termini di funzionalità che rsysloge syslog-ngsono diversi.


8
Direi che sia syslog-ng che rsyslog sono "next gen", o almeno la sostituzione più recente per il syslog più vecchio. Entrambi sono comparabili in termini di funzionalità, ma la sintassi per entrambi è molto diversa. syslog-ng ha la sua sintassi unica, mentre la sintassi di rsyslog è più simile alla sintassi syslog precedente.
Stefan Lasiewski,

9
E poi c'è journalctl/journald
Mausy5043,

9

Da dove posso ottenere il codice sorgente per syslog ()

Questo è fornito da glibc o dalle implementazioni libc su altri tipi di Unix. Questa chiamata sostanzialmente invia il tuo messaggio al socket di dominio unix syslog / dev / log. Questo socket viene normalmente creato dal logger di sistema (ad es. Rsyslog, syslog-ng, nxlog, ecc.).


3

Sono tutti demoni syslog, in cui rsyslog e syslog-ng sono sostituzioni più veloci e più ricche di funzionalità per il syslogd tradizionale (per lo più non mantenuto). syslog-ng è iniziato da zero (con un diverso formato di configurazione) mentre rsyslog era originariamente un fork di syslogd, supportando ed estendendo la sua sintassi. Negli ultimi anni, rsyslog ha iniziato a supportare anche un formato di configurazione più recente. Ormai, è davvero difficile confrontare i due senza entrare nei dettagli e iniziare guerre di fiamma.

Syslog in generale è abbastanza confuso in quanto può essere più cose. Ho avuto una possibilità di disambiguare qui: https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.