Jaka jest różnica między syslog, rsyslog i syslog-ng?

61

Jestem trochę zagubiony w syslog, rsyslog i syslog-ng.

Skąd mogę uzyskać kod źródłowy syslog()?

Czy jest jakaś różnica między rsyslog i rsyslogd?

StackUser
źródło
rsyslogd z literą D to demon
rsyslogd
3
Dla zachowania kompletności dodam jedną stwierdzoną różnicę, która może mieć wpływ na ciebie lub nie. syslog-ng używa fopen, podczas gdy rsyslog używa fappend. Ma to znaczenie, jeśli masz chattr +aswoje pliki syslog. Większość ludzi tego nie robi, właśnie miałem specjalny przypadek użycia i tak się dowiedziałem. Właśnie sprawiłem, że wielu ludzi się skrzywiło.
Aaron

Odpowiedzi:

52

Zasadniczo wszystkie są takie same, ponieważ wszystkie umożliwiają rejestrowanie danych z różnych typów systemów w centralnym repozytorium.

Są to jednak trzy różne projekty, z których każdy ma na celu ulepszenie poprzedniego, zapewniając większą niezawodność i funkcjonalność.

SyslogProjekt był pierwszy projekt. Zaczęło się w 1980 roku. Jest to główny projekt Syslogprotokołu. W tej chwili Syslog jest bardzo prostym protokołem. Na początku obsługuje tylko UDP do transportu, więc nie gwarantuje dostarczenia wiadomości.

Następny przyszedł syslog-ngw 1998 roku. Rozszerza podstawowy syslogprotokół o nowe funkcje, takie jak:

  • filtrowanie na podstawie zawartości
  • Logowanie bezpośrednio do bazy danych
  • TCP do transportu
  • Szyfrowanie TLS

Następny przyszedł Rsyslogw 2004 roku. Rozszerza syslogprotokół o nowe funkcje, takie jak:

  • Obsługa protokołu RELP
  • Obsługa operacji buforowanych

Powiedzmy, że dzisiaj są to trzy równoległe projekty, które rozwijały się osobno w zależności od wersji, ale także rozwijały się równolegle w odniesieniu do tego, co robili sąsiedzi.

Osobiście uważam, że dzisiaj syslog-ngjest to odniesienie w większości przypadków, ponieważ jest to najbardziej dojrzały projekt oferujący główne funkcje, których możesz potrzebować, a także łatwą i kompleksową konfigurację i konfigurację.

krisFR
źródło
1
Dla przypomnienia, syslog OpenBSD może wykonywać TCP i TLS (i UDP)
Neil McGuigan
32

są to 3 różne rodzaje menedżerów dzienników: umożliwia systemowi zbieranie filtrów oraz przesyłanie / przechowywanie dzienników.

  • Syslog(demon również o nazwie sysklogd) jest domyślnym LM we wspólnych dystrybucjach Linuksa. Lekki, ale niezbyt elastyczny, możesz przekierowywać strumień dziennika posortowany według obiektu i ważności do plików i przez sieć (TCP, UDP).
  • rsyslogjest „zaawansowaną” wersją, w sysklogdktórej plik konfiguracyjny pozostaje taki sam (możesz skopiować syslog.confplik bezpośrednio do rsyslog.confniego i działa); ale masz wiele nowych fajnych rzeczy:

    • Możesz nasłuchiwać połączeń TCP / UDP / ... z ograniczeniami (porty, źródłowe adresy IP)
    • Możesz załadować wiele modułów
    • Możesz rozróżnić filtrowanie dziennika według programu, źródła, wiadomości, pid itp. (Na przykład każda wiadomość oznaczona komunikatem „połączenie zamknięte” do pliku zamkniętego. Log)
    • Możesz odrzucić wiadomość po jednej lub więcej reguł Odwiedź http://www.rsyslog.com, co jest naprawdę bardzo dobre
  • Syslog-ng to „Next-Gen”. Myślę, że to najlepszy sposób na zarządzanie dziennikami: wszystko jest obiektem (źródło, miejsce docelowe, filtr i sama zasada przekazywania), a składnia jest jasna. Wątpię pod względem funkcjonalności, które są rsyslogi syslog-ngsą różne.

moutonjr
źródło
8
Argumentowałbym, że zarówno syslog-ng, jak i rsyslog to „następna generacja”, a przynajmniej nowszy zamiennik starszego syslog. Oba są porównywalne pod względem funkcji, ale ich składnia jest bardzo różna. syslog-ng ma swoją unikalną składnię, podczas gdy składnia rsyslog jest bardziej podobna do starszej składni syslog.
Stefan Lasiewski
9
A potem jest journalctl/journald
Mausy5043
9

Skąd mogę uzyskać kod źródłowy dla syslog ()

Zapewnia to implementacja glibc lub libc w innych wersjach uniksowych. To wywołanie zasadniczo przesyła twoją wiadomość do gniazda domeny / syslog unix / dev / log. To gniazdo jest zwykle tworzone przez program rejestrujący system (np. Rsyslog, syslog-ng, nxlog itp.).

b0ti
źródło
3

Wszystkie są demonami syslog, w których rsyslog i syslog-ng są szybszymi i bogatszymi w funkcje zamiennikami tradycyjnego syslogd (najczęściej nieobsługiwanego). syslog-ng zaczął od zera (z innym formatem konfiguracji), podczas gdy rsyslog był pierwotnie rozwidleniem syslogd, obsługującym i rozszerzającym jego składnię. W ostatnich latach rsyslog zaczął także obsługiwać nowszy format konfiguracji. Do tej pory naprawdę trudno jest porównać te dwa elementy bez wchodzenia w szczegóły i rozpoczynania wojen z ogniem.

Ogólnie Syslog jest dość mylący, ponieważ może składać się z wielu rzeczy. Próbowałem ujednoznacznić tutaj: https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/

Radu Gheorghe
źródło