Řešení 1:
V zásadě jsou všechny stejné, protože všechny umožňují logování dat z různých typů systémů do centrálního úložiště.
Jsou to ale tři různé projekty, z nichž každý se snaží vylepšit předchozí s větší spolehlivostí a funkčností.
Syslog
projekt byl úplně první projekt. Začalo to v roce 1980. Je to kořenový projekt Syslog
protokol. V současné době je Syslog velmi jednoduchý protokol. Zpočátku podporuje pouze UDP pro přenos, takže nezaručuje doručení zpráv.
Další bylo syslog-ng
v roce 1998. Rozšiřuje základní syslog
protokol s novými funkcemi jako:
- filtrování podle obsahu
- Přímé přihlášení do databáze
- TCP pro přepravu
- Šifrování TLS
Další bylo Rsyslog
v roce 2004. Rozšiřuje syslog
protokol s novými funkcemi jako:
- Podpora protokolu RELP
- Podpora provozu s vyrovnávací pamětí
Řekněme, že dnes jsou to tři souběžné projekty, které vyrostly odděleně na verzích, ale také paralelně rostly s ohledem na to, co dělali sousedé.
Osobně si myslím, že dnes syslog-ng
je ve většině případů referenční, protože jde o nejvyspělejší projekt nabízející hlavní funkce, které můžete potřebovat, kromě snadného a komplexního nastavení a konfigurace.
Řešení 2:
toto jsou 3 různé druhy správců protokolů:umožňuje vašemu systému shromažďovat filtry a přenášet/ukládat protokoly.
Syslog
(démon také pojmenovanýsysklogd
) je výchozí LM v běžných distribucích Linuxu. Lehký, ale ne příliš flexibilní, můžete přesměrovat tok protokolů seřazený podle zařízení a závažnosti do souborů a přes síť (TCP, UDP).-
rsyslog
je "pokročilá" verzesysklogd
kde konfigurační soubor zůstává stejný (můžete zkopírovatsyslog.conf
soubor přímo dorsyslog.conf
a funguje to); ale přichází s ním spousta nových skvělých věcí:- Můžete poslouchat připojení TCP/UDP/... s omezeními (porty, zdrojové IP adresy)
- Můžete načíst mnoho modulů
- Filtrování protokolu můžete rozlišit podle programu, zdroje, zprávy, pid atd. (například každá zpráva označená zprávou "připojení uzavřeno" k souboru closed.log)
- Zprávu můžete zahodit po jednom nebo více pravidlechNavštivte stránku http://www.rsyslog.com, což je opravdu velmi dobré
-
Syslog-ng je "Next-Gen". Myslím, že je to nejlepší způsob, jak spravovat protokoly:vše je objekt (zdroj, cíl, filtr a samotné pravidlo předávání) a syntaxe je jasná. Pochybuji o funkčnosti, že
rsyslog
asyslog-ng
jsou různé.
Řešení 3:
Kde mohu získat zdrojový kód pro syslog()
To zajišťuje glibc nebo implementace libc na jiných variantách Unixu. Toto volání v podstatě odešle vaši zprávu do soketu syslog unixové domény /dev/log. Tento soket je normálně vytvořen systémovým loggerem (např. rsyslog, syslog-ng, nxlog atd.).
Řešení 4:
Všechno jsou to démoni syslog, kde rsyslog a syslog-ng jsou rychlejší a bohatší náhrady za (většinou neudržovaný) tradiční syslogd. syslog-ng začal od nuly (s jiným konfiguračním formátem), zatímco rsyslog byl původně fork syslogd, který podporoval a rozšiřoval jeho syntaxi. V posledních letech začal rsyslog podporovat také novější formát konfigurace. V tuto chvíli je opravdu těžké srovnávat tyto dva, aniž bychom se dostali do velmi specifik a nezačali plamenné války.
Syslog je obecně docela matoucí, protože může být více věcí. Pokusil jsem se vyjasnit zde:https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/