EN
返回档案库

案例库 · 软件与 IT · 技术决策 · 1980–2009

Syslog通过UDP发送纯文本且不等待应答,从而胜出

诞生于80年代BSD/sendmail的syslog成为计算领域默认的日志标准,因为一条UDP消息零成本,且永远不会拖慢或崩溃发送方。

UC Berkeley (BSD Unix)

那一手

在1980年代,Eric Allman在加州大学伯克利分校开发sendmail时构建了一个日志设施;BSD syslog的设计传播到所有Unix系统,然后进入路由器、交换机等网络设备,因为它回答了操作员普遍关心的问题:发生了什么,在哪里?RFC 3164(2001年)将其描述为一个"多年来用于跨网络传输事件通知消息的协议"——在成为正式标准之前,它已是事实标准。

让采用变得轻松的设计选择:syslog客户端通过UDP端口514向收集器发送纯文本行,无需连接,无需确认——纯粹的即发即弃。应用程序永远不会因为日志记录缓慢或收集器宕机而阻塞或崩溃;最坏的情况是数据包丢失。RFC 5424(2009年)后来在IETF标准轨道上标准化了格式,淘汰了RFC 3164,同时保留了这种轻量级模型。

由于门槛几乎为零,每个操作系统和网络设备都自带客户端;集中式日志服务器成为常态,syslog成为今天SIEM和日志管理产品仍在收集的通用语言,后来为了可靠性和安全性添加了TCP和TLS,适用于UDP丢包重要的场景。

为什么管用

  • 即发即弃的UDP意味着日志调用不会拖慢或崩溃应用。
  • 纯文本无需解析器或模式,任何程序都能在几分钟内加入。
  • BSD在所有Unix中自带,所以它靠默认而非强制传播。
  • 后来的RFC将已经无处不在的协议正式化。
值了多少日志即发即弃:通过UDP发送纯文本,无需应答利落

可以搬走什么

让遥测通道零成本使用:如果日志会阻塞发送方,没人会记录;即发即弃让日志无处不在。

后来呢

RFC 3164(2001年)记录了非正式协议;RFC 5424(2009年)将其提升为IETF标准,RFC 5426映射到UDP。每个主要操作系统、路由器和防火墙仍然发送syslog,日志管理平台收集它;后来添加了结构化日志和TCP/TLS变体以增强可靠性和加密。

资料来源

发现哪里写错了?告诉我们。

同一路聪明