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

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

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

rsyslog和rsyslogd有什么不同吗?

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

    但是他们是三个不同的项目,每个项目都试图改进前一个项目的可靠性和function性。

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

    接下来是1998年的syslog-ng 。它扩展了基本的syslog协议,其新特性如下:

    • 基于内容的过滤
    • 直接login到数据库
    • TCP运输
    • TLSencryption

    接下来是2004年的Rsyslog 。它扩展了syslog协议的新function,如:

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

    假设今天他们是三个并行的项目,这些项目在版本上分开发展,但是对于邻居们在做什么也是同时发展的。

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

    这些是3种不同types的日志pipe理器:它使您的系统能够收集filter,并传输/存储日志。

    • Syslog (守护进程也称为sysklogd )是普通Linux发行版中的默认LM。 轻但不是非常灵活,您可以redirect日志stream量按设施和严重性sorting文件和通过networking(TCP,UDP)。
    • rsyslogsysklogd一个“高级”版本,其configuration文件保持不变(你可以直接将syslog.conf文件复制到rsyslog.conf文件中)。 但你有很多新的酷东西:

      • 您可以侦听TCP / UDP / …连接,但有限制(端口,源IP)
      • 你可以加载很多模块
      • 您可以通过程序,源代码,消息,pid等来区分日志过滤(例如,每个标记为文件closed.log的“连接closures”消息)
      • 你可以放弃一条或多条规则后的消息访问http://www.rsyslog.com这确实是非常好的
    • Syslog-ng是“下一代”。 我认为这是pipe理日志的最好方法:一切都是对象(源,目的地,filter和正确的转发规则),语法清晰。 我怀疑rsyslogsyslog-ngfunction不同。

    从哪里可以得到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/