基本上,它們都是相同的,它們都允許在中央存儲庫中記錄來自不同類型系統的數據。
但是它們是三個不同的項目,每個項目都試圖通過更多的可靠性和功能性來改進前一個項目。
Syslog項目是第一個項目。它始於1980年。它是Syslog協議的基礎項目。目前,Syslog是一個非常簡單的協議。在開始時,它僅支持UDP傳輸,因此不保證消息的傳遞。
syslog-ng誕生於1998年。
由Balabit IT Security Ltd.維護的一套開源的Unix和類Unix系統的日志服務套件。它是一個靈活的、可伸縮的系統日志記錄程序。對於服務器日志集中收集,使用它是一個不錯的解決方案。
它syslog通過新功能擴展了基本協議,例如:
- 基於內容的過濾
- 直接登錄到數據庫
- TCP傳輸
- TLS加密
Syslog-ng主要特性有:
- 支持SSL/TLS協議
- 支持將日志寫入數據庫中,支持的數據庫有MySQL, Microsoft SQL (MSSQL),Oracle, PostgreSQL, and SQLite.
- 支持標准的syslog協議
- 支持filter、parse以及rewrite
- 支持更多的平台
- 更高的負載能力
Rsyslog誕生於2004年。它syslog通過以下新功能擴展了協議:
- RELP協議支持
- 緩沖操作支持
Rsyslog可以簡單的理解為syslog的超集,在老版本的Linux系統中,Red Hat Enterprise Linux 3/4/5默認是使用的syslog作為系統的日志工具,從RHEL 6 開始系統默認使用了Rsyslog。
Rsyslog 是負責收集 syslog 的程序,可以用來取代 syslogd 或 syslog-ng。 在這些 syslog 處理程序中,個人認為 rsyslog 是功能最為強大的。 其特性包括:
- 支持輸出日志到各種數據庫,如 MySQL,PostgreSQL,MongoDB,ElasticSearch,等等;
- 通過 RELP + TCP 實現數據的可靠傳輸(基於此結合豐富的過濾條件可以建立一種 可靠的數據傳輸通道供其他應用來使用);
- 精細的輸出格式控制以及對消息的強大 過濾能力;
- 高精度時間戳;隊列操作(內存,磁盤以及混合模式等); 支持數據的加密和壓縮傳輸等
