我在syslog,rsyslog和syslog-ng中有点困惑。
从哪里可以得到syslog()
的源代码?
rsyslog和rsyslogd有什么不同吗?
基本上,它们都是一样的,它们都允许在中央存储库中logging来自不同types系统的数据。
但是他们是三个不同的项目,每个项目都试图改进前一个项目的可靠性和function性。
Syslog
项目是第一个项目。 它始于1980年,是Syslog
协议的根本项目。 此时Syslog是一个非常简单的协议。 一开始它只支持UDP传输,所以它不保证消息的传递。
接下来是1998年的syslog-ng
。它扩展了基本的syslog
协议,其新特性如下:
接下来是2004年的Rsyslog
。它扩展了syslog
协议的新function,如:
假设今天他们是三个并行的项目,这些项目在版本上分开发展,但是对于邻居们在做什么也是同时发展的。
我个人认为,今天的syslog-ng
是大多数情况下的参考,因为除了简单而全面的设置和configuration之外,它是提供您可能需要的主要function的最成熟的项目。
这些是3种不同types的日志pipe理器:它使您的系统能够收集filter,并传输/存储日志。
Syslog
(守护进程也称为sysklogd
)是普通Linux发行版中的默认LM。 轻但不是非常灵活,您可以redirect日志stream量按设施和严重性sorting文件和通过networking(TCP,UDP)。 rsyslog
是sysklogd
一个“高级”版本,其configuration文件保持不变(你可以直接将syslog.conf
文件复制到rsyslog.conf
文件中)。 但你有很多新的酷东西:
Syslog-ng是“下一代”。 我认为这是pipe理日志的最好方法:一切都是对象(源,目的地,filter和正确的转发规则),语法清晰。 我怀疑rsyslog
和syslog-ng
function不同。
从哪里可以得到syslog()的源代码
这是由glibc或其他Unix风格的libc实现提供的。 这个调用基本上将你的消息提交给syslog unix域的套接字/ dev / log。 这个套接字通常由系统logging器(例如rsyslog,syslog-ng,nxlog等)创build。
他们都是系统日志守护进程,其中rsyslog和syslog-ng更快,function更丰富(大部分是未维护的)传统syslogd。 syslog-ng从头开始(使用不同的configuration格式),而rsyslog最初是syslogd的一个分支,支持并扩展了它的语法。 近年来,rsyslog也开始支持更新的configuration格式。 到现在为止,没有进入具体的细节,开始火焰战争,真的很难比较两者。
一般情况下,系统日志是相当混乱的,因为它可能是多种事情。 我有一个消除歧义在这里的镜头: https : //sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/