Sự khác biệt giữa syslog, rsyslog và syslog-ng là gì?


61

Tôi hơi bối rối trong syslog, rsyslog và syslog-ng.

Tôi có thể lấy mã nguồn từ syslog()đâu?

Có sự khác biệt nào giữa rsyslog và rsyslogd không?


rsyslogd với chữ D là daemon
rsyslogd

3
Để hoàn thiện, tôi sẽ thêm một điểm khác biệt mà tôi thấy có thể có hoặc không ảnh hưởng đến bạn. syslog-ng sử dụng fopen trong khi rsyslog sử dụng fappend. Điều này quan trọng nếu bạn chattr +atập tin syslog của bạn. Hầu hết mọi người không làm điều này, tôi chỉ có một trường hợp sử dụng đặc biệt và đó là cách tôi phát hiện ra. Tôi chỉ làm rất nhiều người co rúm lại.
Aaron

Câu trả lời:


52

Về cơ bản, tất cả đều giống nhau, theo cách tất cả đều cho phép ghi nhật ký dữ liệu từ các loại hệ thống khác nhau trong một kho lưu trữ trung tâm.

Nhưng chúng là ba dự án khác nhau, mỗi dự án cố gắng cải thiện dự án trước với độ tin cậy và chức năng cao hơn.

Các Syslogdự án là dự án đầu tiên. Nó bắt đầu vào năm 1980. Đây là dự án gốc cho Sysloggiao thức. Tại thời điểm này Syslog là một giao thức rất đơn giản. Lúc đầu, nó chỉ hỗ trợ UDP cho việc vận chuyển, do đó nó không đảm bảo việc gửi tin nhắn.

Tiếp đến là syslog-ngvào năm 1998. Nó mở rộng sysloggiao thức cơ bản với các tính năng mới như:

  • lọc dựa trên nội dung
  • Đăng nhập trực tiếp vào cơ sở dữ liệu
  • TCP để vận chuyển
  • Mã hóa TLS

Tiếp đến là Rsyslogvào năm 2004. Nó mở rộng sysloggiao thức với các tính năng mới như:

  • Hỗ trợ giao thức RELP
  • Hỗ trợ vận hành đệm

Chúng ta hãy nói rằng ngày nay họ là ba dự án đồng thời phát triển riêng biệt theo các phiên bản, nhưng cũng phát triển song song về những gì hàng xóm đang làm.

Cá nhân tôi nghĩ rằng hôm nay syslog-nglà tài liệu tham khảo trong hầu hết các trường hợp, vì đây là dự án trưởng thành nhất cung cấp các tính năng chính bạn có thể cần, ngoài việc thiết lập và cấu hình dễ dàng và toàn diện.


1
Đối với bản ghi, syslog của OpenBSD có thể thực hiện TCP và TLS (và UDP)
Neil McGuigan

32

đây là 3 loại trình quản lý nhật ký khác nhau: nó cho phép hệ thống của bạn thu thập bộ lọc và truyền / lưu trữ nhật ký.

  • Syslog(daemon cũng được đặt tên sysklogd) là LM mặc định trong các bản phân phối Linux phổ biến. Nhẹ nhưng không linh hoạt, bạn có thể chuyển hướng thông lượng nhật ký được sắp xếp theo cơ sở và mức độ nghiêm trọng đến các tệp và qua mạng (TCP, UDP).
  • rsysloglà phiên bản "nâng cao" trong sysklogdđó tệp cấu hình vẫn giữ nguyên (bạn có thể sao chép syslog.conftệp trực tiếp vào rsyslog.confvà nó hoạt động); nhưng bạn có rất nhiều thứ hay ho mới đi kèm với nó:

    • Bạn có thể nghe các kết nối TCP / UDP / ..., với các hạn chế (cổng, IP nguồn)
    • Bạn có thể tải rất nhiều mô-đun
    • Bạn có thể phân biệt lọc nhật ký theo chương trình, nguồn, tin nhắn, pid, v.v. (ví dụ: mỗi thông báo được gắn thẻ thông báo "kết nối đã đóng" với tệp đã đóng.log)
    • Bạn có thể loại bỏ tin nhắn sau một hoặc nhiều quy tắc Truy cập http://www.rsyslog.com , điều này thực sự rất tốt
  • Syslog-ng là "Thế hệ tiếp theo". Tôi nghĩ đó là cách tốt nhất để quản lý nhật ký: mọi thứ đều là đối tượng (nguồn, đích, bộ lọc và quy tắc chuyển tiếp) và cú pháp rõ ràng. Tôi nghi ngờ về chức năng đó rsyslogsyslog-nglà khác nhau.


8
Tôi sẽ lập luận rằng cả syslog-ng và rsyslog đều là 'thế hệ tiếp theo', hoặc ít nhất là sự thay thế mới hơn cho syslog cũ. Cả hai đều tương đương nhau về các tính năng, nhưng cú pháp cho cả hai rất khác nhau. syslog-ng có cú pháp duy nhất của riêng nó, trong khi cú pháp của rsyslog giống với cú pháp syslog cũ hơn.
Stefan Lasiewski

9
Và sau đó có journalctl/journald
Mausy5043 16/07/2016

9

Tôi có thể lấy mã nguồn từ đâu cho syslog ()

Điều này được cung cấp bởi glibc hoặc việc triển khai libc trên các hương vị Unix khác. Cuộc gọi này về cơ bản gửi tin nhắn của bạn đến syslog unix domain socket / dev / log. Ổ cắm này thường được tạo bởi bộ ghi hệ thống (ví dụ: rsyslog, syslog-ng, nxlog, v.v.).


3

Chúng đều là các trình nền syslog, trong đó rsyslog và syslog-ng là các thay thế nhanh hơn và giàu tính năng hơn cho syslogd truyền thống (hầu hết không được làm rõ). syslog-ng bắt đầu từ đầu (với định dạng cấu hình khác) trong khi rsyslog ban đầu là một nhánh của syslogd, hỗ trợ và mở rộng cú pháp của nó. Trong những năm gần đây, rsyslog cũng bắt đầu hỗ trợ một định dạng cấu hình mới hơn. Đến bây giờ, thật khó để so sánh hai người mà không đi sâu vào chi tiết cụ thể và bắt đầu những cuộc chiến nảy lửa.

Syslog nói chung khá khó hiểu vì nó có thể là nhiều thứ. Tôi đã có một cảnh quay về định hướng ở đây: https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-prot Protocol /

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.