我对syslog,rsyslog和syslog-ng有点困惑。
从哪里可以获取
syslog()
的源代码?之间有什么区别吗? rsyslog和rsyslogd?
#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)。rsyslog
是sysklogd
的“高级”版本,其中配置文件保留在相同(您可以将syslog.conf
文件直接复制到rsyslog.conf
中,并且可以使用);但您会发现很多新奇妙的东西:您可以监听TCP / UDP / ...连接,但有限制(端口,源IP)
您可以加载很多模块
您可以通过程序,源代码,消息,PID等来区分日志过滤(例如,每个标记为“ connexion close”的消息都被标记为closed.log文件)
您可以按照一个或多个规则丢弃消息
访问http://www.rsyslog.com确实非常好
Syslog-ng是“下一代”。我认为这是管理日志的最佳方法:一切都是对象(源,目标,过滤器和非常转发的规则),语法清晰。我怀疑在功能上
rsyslog
和syslog-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/
评论
带D字母的rsyslogd是rsyslogd守护程序为了完整起见,我将添加一个可能会或可能不会影响您的差异。 syslog-ng使用fopen,而rsyslog使用fappend。如果您聊天+系统日志文件,这很重要。大多数人不这样做,我只是有一个特殊的用例,这就是我发现的方式。我只是让很多人畏缩。