syslog、rsyslog 和 syslog-ng 之間有什麼差別?

syslog、rsyslog 和 syslog-ng 之間有什麼差別?

我對 syslog、rsyslog 和 syslog-ng 有點困惑。

從哪裡可以獲得原始碼syslog()

rsyslog 和 rsyslogd 有什麼不同嗎?

答案1

基本上,它們都是相同的,因為它們都允許在中央儲存庫中記錄來自不同類型系統的資料。

但它們是三個不同的項目,每個項目都試圖以更高的可靠性和功能來改進前一個項目。

Syslog項目是第一個項目。它始於 1980 年Syslog。此時Syslog是一個非常簡單的協定。一開始它只支援UDP傳輸,因此不能保證訊息的傳送。

接下來是syslog-ng1998 年syslog

  • 基於內容的過濾
  • 直接登入資料庫
  • TCP 傳輸
  • TLS 加密

接下來是2004Rsyslog年。syslog

  • RELP 協定支持
  • 緩衝操作支持

假設今天它們是三個並發項目,它們在版本上分別增長,但也根據鄰居正在做的事情並行增長。

我個人認為今天syslog-ng在大多數情況下都是參考,因為它是最成熟的項目,除了簡單而全面的設定和配置之外,還提供您可能需要的主要功能。

答案2

這是 3 種不同類型的日誌管理器:它使您的系統能夠收集過濾器並傳輸/儲存日誌。

  • Syslog(守護程式也稱為sysklogd)是常見 Linux 發行版中的預設 LM。輕巧但不太靈活,您可以將按設施和嚴重性排序的日誌流量重定向到檔案並通過網路(TCP、UDP)。
  • rsyslogsysklogd是設定檔保持不變的“高級”版本(您可以syslog.conf直接將文件複製到其中rsyslog.conf並且它可以工作);但你有很多新的很酷的東西:

    • 您可以監聽 TCP/UDP/... 連接,但有限制(連接埠、來源 IP)
    • 可以加載很多模組
    • 您可以按程式、來源、訊息、pid 等來區分日誌過濾(例如,每個訊息都標記有訊息「連線已關閉」到檔案 close.log)
    • 您可以在一條或多條規則存取後丟棄訊息http://www.rsyslog.com這確實非常好
  • Syslog-ng 是「下一代」。我認為這是管理日誌的最佳方式:一切都是物件(來源、目的地、過濾器和轉發規則)並且語法很清晰。我懷疑 和 的功能rsyslog是否syslog-ng不同。

答案3

從哪裡可以獲得 syslog() 的源碼

這是由glibc或其他 Unix 風格上的 libc 實作。此呼叫基本上將您的訊息提交到 syslog unix 網域套接字 /dev/log。此套接字通常由系統記錄器(例如 rsyslog、syslog-ng、nxlog 等)建立。

答案4

它們都是 syslog 守護進程,其中 rsyslog 和 syslog-ng 是(大多數未維護的)傳統 syslogd 的更快且功能更豐富的替代品。 syslog-ng 從頭開始(具有不同的配置格式),而 rsyslog 最初是 syslogd 的一個分支,支援並擴展其語法。近年來,rsyslog 也開始支援更新的設定格式。到目前為止,如果不深入細節並引發激烈的爭論,真的很難對兩者進行比較。

一般來說,系統日誌非常令人困惑,因為它可能包含多種內容。我曾嘗試在這裡消除歧義:https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/

相關內容