Apa perbedaan antara syslog, rsyslog dan syslog-ng?

61

Saya agak bingung di syslog, rsyslog dan syslog-ng.

Dari mana saya bisa mendapatkan kode sumber syslog()?

Apakah ada perbedaan antara rsyslog dan rsyslogd?

StackUser
sumber
rsyslogd dengan huruf D adalah daemon
rsyslogd
3
Demi kelengkapan, saya akan menambahkan satu perbedaan yang saya temukan yang mungkin atau mungkin tidak berdampak pada Anda. syslog-ng menggunakan fopen sedangkan rsyslog menggunakan fappend. Ini penting jika Anda chattr +afile syslog Anda. Kebanyakan orang tidak melakukan ini, saya hanya menggunakan case-use khusus dan itulah bagaimana saya mengetahuinya. Saya hanya membuat banyak orang ngeri.
Aaron

Jawaban:

52

Pada dasarnya, semuanya sama, dalam cara mereka semua mengizinkan pencatatan data dari berbagai jenis sistem di repositori pusat.

Tetapi mereka adalah tiga proyek yang berbeda, masing-masing proyek berusaha untuk meningkatkan yang sebelumnya dengan lebih banyak keandalan dan fungsionalitas.

The Syslogproyek adalah proyek pertama. Ini dimulai pada 1980. Ini adalah proyek root untuk Syslogprotokol. Pada saat ini Syslog adalah protokol yang sangat sederhana. Awalnya hanya mendukung UDP untuk transportasi, sehingga tidak menjamin pengiriman pesan.

Berikutnya datang syslog-ngpada tahun 1998. Ia memperluas syslogprotokol dasar dengan fitur-fitur baru seperti:

  • penyaringan berbasis konten
  • Masuk langsung ke database
  • TCP untuk transportasi
  • Enkripsi TLS

Selanjutnya datang Rsyslogpada tahun 2004. Ia memperluas syslogprotokol dengan fitur-fitur baru seperti:

  • Dukungan Protokol RELP
  • Dukungan operasi yang disangga

Katakanlah hari ini mereka adalah tiga proyek bersamaan yang telah tumbuh secara terpisah berdasarkan versi, tetapi juga tumbuh secara paralel mengenai apa yang dilakukan tetangga.

Saya pribadi berpikir bahwa hari ini syslog-ngadalah referensi dalam banyak kasus, karena ini adalah proyek paling matang yang menawarkan fitur-fitur utama yang mungkin Anda butuhkan, di samping pengaturan dan konfigurasi yang mudah dan komprehensif.

KRFFR
sumber
1
Sebagai catatan, syslog OpenBSD dapat melakukan TCP dan TLS (dan UDP)
Neil McGuigan
32

ini adalah 3 jenis manajer log yang berbeda: ini memungkinkan sistem Anda untuk mengumpulkan filter, dan mengirimkan / menyimpan log.

  • Syslog(daemon juga bernama sysklogd) adalah LM default dalam distribusi Linux yang umum. Ringan tetapi tidak terlalu fleksibel, Anda dapat mengarahkan fluks log yang diurutkan berdasarkan fasilitas dan tingkat keparahan ke file dan melalui jaringan (TCP, UDP).
  • rsyslogadalah versi "lanjutan" di sysklogdmana file config tetap sama (Anda dapat menyalin syslog.conffile langsung ke rsyslog.confdan berfungsi); tetapi Anda memiliki banyak hal keren baru yang menyertainya:

    • Anda dapat mendengarkan koneksi TCP / UDP / ..., dengan batasan (port, Source IPs)
    • Anda dapat memuat banyak modul
    • Anda dapat membedakan pemfilteran log berdasarkan program, sumber, pesan, pid, dll. (Misalnya, setiap pesan ditandai dengan pesan "connexion closed" ke file closed.log)
    • Anda dapat membuang pesan setelah satu atau beberapa aturan. Kunjungi http://www.rsyslog.com yang memang sangat bagus
  • Syslog-ng adalah "Next-Gen". Saya pikir ini adalah cara terbaik untuk mengelola log: semuanya adalah objek (sumber, tujuan, filter, dan aturan penerusan) dan sintaksnya jelas. Saya ragu dalam hal fungsi itu rsyslogdan syslog-ngberbeda.

moutonjr
sumber
8
Saya berpendapat bahwa baik syslog-ng dan rsyslog adalah 'next gen', atau setidaknya pengganti yang lebih baru untuk syslog yang lebih lama. Keduanya sebanding dalam hal fitur, tetapi sintaks untuk keduanya sangat berbeda. syslog-ng memiliki sintaks uniknya sendiri, sedangkan sintaksis rsyslog lebih mirip dengan sintaks syslog yang lebih lama.
Stefan Lasiewski
9
Dan kemudian ada journalctl/journald
Mausy5043
9

Dari mana saya bisa mendapatkan kode sumber untuk syslog ()

Ini disediakan oleh glibc atau implementasi libc pada rasa Unix lainnya. Panggilan ini pada dasarnya mengirimkan pesan Anda ke soket domain syslog unix / dev / log. Soket ini biasanya dibuat oleh logger sistem (mis. Rsyslog, syslog-ng, nxlog, dll).

b0ti
sumber
3

Itu semua adalah daemon syslog, di mana rsyslog dan syslog-ng lebih cepat dan lebih banyak penggantian kaya fitur untuk syslogd tradisional (kebanyakan tidak terawat). syslog-ng dimulai dari awal (dengan format konfigurasi yang berbeda) sementara rsyslog pada awalnya adalah fork dari syslogd, mendukung dan memperluas sintaksisnya. Dalam beberapa tahun terakhir, rsyslog juga mulai mendukung format konfigurasi yang lebih baru. Pada saat ini, sangat sulit untuk membandingkan keduanya tanpa masuk ke hal yang sangat spesifik dan memulai perang api.

Syslog secara umum cukup membingungkan karena dapat beberapa hal. Saya mencoba disambiguasi di sini: https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/

Radu Gheorghe
sumber