![syslog、rsyslog 和 syslog-ng 之間有什麼差別?](https://rvso.com/image/658365/syslog%E3%80%81rsyslog%20%E5%92%8C%20syslog-ng%20%E4%B9%8B%E9%96%93%E6%9C%89%E4%BB%80%E9%BA%BC%E5%B7%AE%E5%88%A5%EF%BC%9F%20.png)
我對 syslog、rsyslog 和 syslog-ng 有點困惑。
從哪裡可以獲得原始碼syslog()
?
rsyslog 和 rsyslogd 有什麼不同嗎?
答案1
基本上,它們都是相同的,因為它們都允許在中央儲存庫中記錄來自不同類型系統的資料。
但它們是三個不同的項目,每個項目都試圖以更高的可靠性和功能來改進前一個項目。
該Syslog
項目是第一個項目。它始於 1980 年Syslog
。此時Syslog是一個非常簡單的協定。一開始它只支援UDP傳輸,因此不能保證訊息的傳送。
接下來是syslog-ng
1998 年syslog
。
- 基於內容的過濾
- 直接登入資料庫
- TCP 傳輸
- TLS 加密
接下來是2004Rsyslog
年。syslog
- RELP 協定支持
- 緩衝操作支持
假設今天它們是三個並發項目,它們在版本上分別增長,但也根據鄰居正在做的事情並行增長。
我個人認為今天syslog-ng
在大多數情況下都是參考,因為它是最成熟的項目,除了簡單而全面的設定和配置之外,還提供您可能需要的主要功能。
答案2
這是 3 種不同類型的日誌管理器:它使您的系統能夠收集過濾器並傳輸/儲存日誌。
Syslog
(守護程式也稱為sysklogd
)是常見 Linux 發行版中的預設 LM。輕巧但不太靈活,您可以將按設施和嚴重性排序的日誌流量重定向到檔案並通過網路(TCP、UDP)。rsyslog
sysklogd
是設定檔保持不變的“高級”版本(您可以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/