syslog、rsyslog 和 syslog-ng 之间有什么区别?

syslog、rsyslog 和 syslog-ng 之间有什么区别?

我对 syslog、rsyslog 和 syslog-ng 有点困惑。

我可以从哪里获得源代码syslog()

rsyslog 和 rsyslogd 之间有什么区别?

答案1

基本上,它们都是一样的,都允许在中央存储库中记录来自不同类型系统的数据。

但它们是三个不同的项目,每个项目都试图改进前一个项目,使其更加可靠、功能更多。

Syslog项目是第一个项目。它始于 1980 年。它是Syslog协议的根项目。当时 Syslog 是一个非常简单的协议。一开始它只支持 UDP 传输,因此它不能保证消息的传递。

接下来是syslog-ng在 1998 年。它扩展了基本syslog协议,增加了以下新功能:

  • 基于内容的过滤
  • 直接登录数据库
  • TCP 用于传输
  • TLS 加密

接下来是Rsyslog在 2004 年。它扩展了syslog协议,增加了以下新功能:

  • RELP 协议支持
  • 缓冲操作支持

假设今天它们有三个并发项目,它们在版本上分别发展,但同时也根据邻居所做的事情并行发展。

我个人认为今天syslog-ng在大多数情况下都是参考,因为它是最成熟的项目,提供您可能需要的主要功能,此外还有简单全面的设置和配置。

答案2

这是 3 种不同类型的日志管理器:它使您的系统能够收集过滤、传输/存储日志。

  • Syslog(守护进程也称为sysklogd)是常见 Linux 发行版中的默认 LM。轻量但不太灵活,您可以将按设施和严重性排序的日志流重定向到文件并通过网络(TCP、UDP)。
  • rsyslogsysklogd是配置文件保持不变的“高级”版本(您可以syslog.conf直接将文件复制到其中rsyslog.conf,它就可以工作);但是您会得到很多新的很酷的东西:

    • 您可以监听 TCP/UDP/... 连接,但有限制(端口、源 IP)
    • 你可以加载很多模块
    • 您可以通过程序、来源、消息、pid 等来区分日志过滤(例如,每个标有“连接关闭”消息的消息都会被保存到文件 closed.log 中)
    • 您可以按照一条或多条规则丢弃邮件 访问http://www.rsyslog.com这确实很好
  • Syslog-ng 是“下一代”。我认为它是管理日志的最佳方式:一切都是对象(源、目标、过滤器和转发规则),语法清晰。就功能而言,我怀疑rsyslogsyslog-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 也开始支持更新的配置格式。到目前为止,如果不深入讨论细节并引发激烈争论,就很难对这两者进行比较。

Syslog 总体上比较令人困惑,因为它可以表示多种含义。我尝试在这里解释一下:https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/

相关内容