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

Sta*_*ser 67 linux log-files daemon syslog rsyslog

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

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

rsyslog 和 rsyslogd 之间有什么区别吗?

kri*_*sFR 55

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

但它们是三个不同的项目,每个项目都试图以更高的可靠性和功能改进前一个项目。

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

接下来是syslog-ng1998 年。它扩展了基本syslog协议,具有新功能,例如:

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

接下来是Rsyslog2004 年。它扩展了syslog协议的新功能,例如:

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

假设今天它们是三个并发项目,它们在版本上分别增长,但在邻居所做的事情上也并行增长。

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


小智 33

这是 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不同的功能。

  • 然后是`journalctl`/`journald` (11认同)
  • 我认为 syslog-ng 和 rsyslog 都是“下一代”,或者至少是旧 syslog 的更新替代品。两者在功能方面具有可比性,但两者的语法非常不同。syslog-ng 有自己独特的语法,而 rsyslog 的语法更像旧的 syslog 语法。 (8认同)

b0t*_*0ti 9

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

这是由glibc或其他 Unix 风格的 libc 实现提供的。此调用基本上将您的消息提交到 syslog unix 域套接字 /dev/log。该套接字通常由系统记录器(例如 rsyslog、syslog-ng、nxlog 等)创建。