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

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

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

评论

带D字母的rsyslogd是rsyslogd守护程序

为了完整起见,我将添加一个可能会或可能不会影响您的差异。 syslog-ng使用fopen,而rsyslog使用fappend。如果您聊天+系统日志文件,这很重要。大多数人不这样做,我只是有一个特殊的用例,这就是我发现的方式。我只是让很多人畏缩。

#1 楼

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

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

Syslog项目是第一个项目。它始于1980年。它是Syslog协议的基础项目。目前,Syslog是一个非常简单的协议。起初,它仅支持UDP传输,因此不能保证消息的传递。

其次是1998年的syslog-ng。它扩展了基本的syslog协议,并具有以下新功能:


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

接下来是2004年的Rsyslog。它进行了扩展syslog协议具有以下新功能:


RELP协议支持
缓冲操作支持

假设今天它们是三个并发项目,分别发展

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

评论


作为记录,OpenBSD的系统日志可以执行TCP和TLS(和UDP)

–尼尔·麦圭根(Neil McGuigan)
17年9月6日在0:03

#2 楼

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




Syslog(守护程序也称为sysklogd)是默认的LM。在常见的Linux发行版中。轻巧但不太灵活,您可以将按功能和严重性排序的日志流量重定向到文件并通过网络(TCP,UDP)。

rsyslogsysklogd的“高级”版本,其中配置文件保留在相同(您可以将syslog.conf文件直接复制到rsyslog.conf中,并且可以使用);但您会发现很多新奇妙的东西:


您可以监听TCP / UDP / ...连接,但有限制(端口,源IP)
您可以加载很多模块
您可以通过程序,源代码,消息,PID等来区分日志过滤(例如,每个标记为“ connexion close”的消息都被标记为closed.log文件)
您可以按照一个或多个规则丢弃消息
访问http://www.rsyslog.com确实非常好


Syslog-ng是“下一代”。我认为这是管理日志的最佳方法:一切都是对象(源,目标,过滤器和非常转发的规则),语法清晰。我怀疑在功能上rsyslogsyslog-ng是否不同。


评论


我会认为syslog-ng和rsyslog都是“下一代”,或者至少是较旧syslog的较新替代品。两者在功能上都具有可比性,但两者的语法却大不相同。 syslog-ng拥有自己独特的语法,而rsyslog的语法更像旧的syslog语法。

– Stefan Lasiewski
2015年5月15日15:44

然后是journalctl / journald

–Mausy5043
16年7月16日在12:18

#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/