支持
 
支持 获取报价
 
 
 
 

Syslog 与 journald

最后更新于:
 

Syslog:概述

Syslog 是用于标准化消息日志记录的传统且最广泛使用的协议。它最初于 1980 年代开发,定义了日志消息的格式、严重级别和设施代码。

它作为一个厂商中立的标准存在,定义了日志应如何格式化和传输,无论处理它的程序是什么。因此,syslog 消息通常为纯文本格式,且在不同操作系统和 网络设备之间易于阅读。

Syslogd:传统的 syslog 守护进程

Syslogd 是在 Unix 和早期 Linux 系统中实现 syslog 协议的基础程序。其主要功能是读取日志消息并将其路由到 /var/log/ 目录中的特定纯文本文件。消息随后根据其设施和严重级别进行路由。

虽然它提供了初步的日志记录机制,但其依赖 UDP 协议进行网络传输,存在传输过程中数据丢失的风险。它也缺乏复杂的过滤功能,导致噪声过多和日志数据量过大。因此,它最终被淘汰,现代 Linux 发行版开始用下一代守护进程如 rsyslog 和 syslog-ng 替代它。

现代 syslog 守护进程:Syslog-ng 和 rsyslog

由于原始 syslogd 程序存在显著限制,它被下一代守护进程取代。最常见的两个守护进程如下:

Syslog-ng

Syslog-ng,即 syslog 下一代,是一个功能强大、高度灵活的 syslog 守护进程,以其清晰的面向对象配置结构和强大的路由能力著称。它通过面向对象的配置定义可重用的组件或模块,如源、过滤器和目标,区别于传统 syslog。这些模块随后通过日志语句连接,使复杂的数据流易于审计和管理。

Syslog-ng 还包括强大的解析器,将非结构化的纯文本 syslog 消息转换为结构化格式,如 JSON,为分析平台和 SIEM 工具提供可操作的洞见。它使用 UDP 以及安全的 TCP 协议进行日志传输,同时支持 TLS 加密,确保日志管道端到端的安全。

Rsyslog

Rsyslog 是大多数 Linux 发行版的默认 syslog 守护进程。它以高性能、模块化日志记录和强兼容性著称。Rsyslog 也被称为快速的日志处理系统,采用模块化架构,利用专用的输入模块(im*)和输出模块(om*)连接任意源和目标。

在日志格式方面,rsyslog 支持原始 BSD syslog 格式以及包含结构化数据字段的现代 IETF syslog 协议。它还使用模板,允许高度自定义的输出,实现如 JSON 这样的结构化日志格式,便于与现代日志分析系统集成。它采用基于 TCP 的应用层协议 RELP,确保日志传输过程中不丢包。

这些现代守护进程也已成为 Linux 日志系统的关键组成部分,具备实时过滤、磁盘排队和安全网络转发等高级功能。

什么是 journald?

Journald,也称为 systemd-journald,是 systemd 套件的集中式日志组件。它收集并存储来自所有系统组件的日志数据,统一保存在名为 systemd journal 的位置。它捕获内核(kmsg)、初始启动过程(initrd)、标准 syslog 调用和 systemd 服务单元的日志。

它以结构化、索引的二进制格式存储日志,而非像 syslog 那样的纯文本文件。这使得查询速度更快,且无需手动日志轮转。日志通常持久存储在 /var/log/journal/ 目录。它使用强大的命令行工具 journalctl 来访问和过滤日志。它兼容现代 syslog 系统,也能将日志转发给传统 syslog 守护进程如 syslog-ng 和 rsyslog。

Syslog 与 journald 如何协同工作

使用 systemd 的 Linux 系统采用协作且分层的架构,利用核心 journald 服务以及 现代 syslog 守护进程如 syslog-ng 和 rsyslog。journald 与 syslog 守护进程的交互使系统既能受益于 journald 结构化、高性能的本地收集,又能利用 syslog 守护进程的高级过滤和网络转发功能。该分层架构涉及以下组件及其各自角色。

Journald 作为主要收集器

内核、systemd 下运行的服务及应用程序生成的所有日志消息首先被定向到 journald 服务。Journald 以结构化二进制格式收集这些日志,并存储在其自己的存储库中,即 /var/log/journal/

Journald 作为转发器

在收集日志的同时,journald 还将日志写入特定的 Unix 域套接字,通常位于 /run/systemd/journal/syslog。该套接字作为消息通道,将日志转发给守护进程。

现代守护进程作为日志接收器

Syslog-ng 和 rsyslog 是常配置为从转发套接字读取日志的守护进程。Rsyslog 使用其 imjournal 输入模块监控该套接字,而 syslog-ng 使用其 systemd-journal 源获取日志。一旦现代 syslog 守护进程(rsyslog 或 syslog-ng)接收日志,它们会对日志进行过滤、处理并路由到最终目的地。目的地包括本地文本文件(/var/log/messages 或 /var/log/auth.log),日志会被写入其中,syslog 服务器用于存储,或 SIEM 工具用于分析。

Journald 与 syslog:比较

以下是 journald 与 syslog(如 syslog-ng 和 rsyslog)守护进程之间的一些主要区别。

功能 Journald(systemd-journald) Syslog 守护进程(rsyslog 或 syslog-ng)
主要关注点 作为 systemd 套件中的日志收集、索引和搜索组件。 作为日志收集器,用于远程转发、过滤和存储日志。
架构 涉及单一组件,完全集成于 systemd 初始化系统。 采用模块化架构。
跨平台 仅在带有 systemd 组件的 Linux 上工作。 被大多数操作系统和网络设备使用。
配置语法 只需最少的配置。 涉及用于过滤和路由的复杂配置文件(例如,rsyslog 的 RainerScript)。
日志格式 日志以结构化、压缩的二进制格式存储和索引。 日志以人类可读的纯文本字符串存储。
结构化数据字段 涉及丰富的元数据,并自动记录数百个字段,如启动 ID、单元名称、PID、用户和优先级,每条日志条目均包含这些信息。 涉及有限的元数据,主要记录时间戳、主机名、设施和严重性。
日志存储 日志存储在 /var/log/journal/ 或 /run/log/journal/ 路径下。 日志存储在 /var/log/ 目录中,包括 syslog、messages 和 auth.log 等文件。
日志传输 日志以原生格式压缩存储。不支持远程传输。 使用磁盘排队和诸如 TCP, TLS 和 RELP 等高级协议,实现日志的可靠和保证传输。
日志持久性 默认是易失性的,即除非显式配置持久存储,否则重启后日志可能丢失。 默认是持久性的,即日志会立即写入文件系统。
查询 日志已被索引,可基于任何结构化字段快速过滤和搜索。 搜索涉及使用 grep 等工具逐行扫描整个文件。
命令行工具 使用 journalctl,这是一个用于查询、过滤和索引搜索的高级工具。 使用标准 Linux 命令行工具,如 cat、grep 和 less。
日志轮转 自我管理,内部处理存储限制、压缩和轮换。 需要外部工具如 logrotate 来管理文件大小。
网络转发 传统上不转发日志,依赖 syslog 守护进程完成此功能。 是核心功能,针对使用 TCP、TLS 和 RELP 的可靠远程转发进行了优化。
表 1:journald 与 syslog 之间的区别

Journald 在 syslog 监控中的作用

可以使用其命令行工具 journalctl 来访问 journald 日志,以执行以下功能:

本地系统故障排除

用于主动快速诊断主机上的近期问题,使用结构化查询。这有助于监控系统健康状况并收集主机系统遥测信息,这对 syslog 管理 至关重要。

结构化过滤

用于使用特定元数据字段过滤日志,如 _COMM(命令名)、_PID(进程 ID)或 _UNIT(systemd 服务名称)。这有助于过滤并仅获取所需数据,减少噪声并优化 syslog 分析。

日志管理(操作系统级别)

用于直接访问 systemd 服务、内核和初始启动过程的日志,以进行 syslog 安全监控。启用持久存储时,还允许分离和查看以前系统启动的日志,实现日志保留和存储以供 syslog 审计。

Syslog 守护进程在 syslog 监控中的作用

syslog-ng 和 rsyslog 等 syslog 守护进程支持以下功能,以实现高效的 syslog 监控:

结构化日志处理

守护进程可以从多种来源摄取日志,例如 systemd journald、syslog 代理、转发器和中继,并将非结构化日志数据转换为 JSON 等结构化格式。这种标准化至关重要,因为它使中央 monitoring tools 能够解析和分析数据,无论其原始格式如何。守护进程还允许基于设施和严重性以及消息内容进行高级、细粒度的日志过滤,从而确保在日志接收端减少噪声并优化带宽。这确保了 syslog servers 和 SIEM 工具仅接收对安全监控至关重要的有用信息。

集中式日志转发

Syslog 守护进程作为高效的日志转发器,收集、存储、解析、索引并将来自各种来源的日志转发到中央 log management 或 SIEM 工具进行 syslog 分析和监控。它们还可以执行预处理操作,如消息重写以掩盖敏感数据,或在转发前完全丢弃无关日志,从而节省带宽并降低中央服务器的存储成本。它们还利用 TCP or TLS protocol、RELP 和磁盘排队确保日志可靠传输,避免日志在传输过程中丢失。

Syslog 服务器功能

处于接收模式的守护进程作为高效的 syslog 服务器,收集、过滤和重写日志以进行 syslog 分析。借助 grep 等命令行工具,守护进程帮助搜索和查询日志,实现增强的 syslog monitoring 和管理。此外,它们还存储、归档并保留日志以满足合规审计需求。

Syslog 服务器集中收集所有 syslog 设备的日志,包括防火墙、路由器以及 Unix 或 Linux 机器,确保高效的日志管理和分析。

EventLog Analyzer 作为中央目标

虽然 journald 擅长本地收集,syslog 守护进程负责转发,但两者都不提供安全团队所需的关联、仪表盘或合规报告。ManageEngine EventLog Analyzer 作为所有 syslog 数据的中央目的地和综合枢纽,无缝利用 Linux 日志系统的功能。它收集、解析并规范化从 rsyslogsyslog-ng 等守护进程转发的日志数据,其中包括 journald 处理过的日志。

EventLog Analyzer 还通过高级搜索和过滤选项消除了 journalctl 和基本 grep 搜索的本地限制。它还提供仪表盘、报告、检测规则和用于合规审计的告警模块,实现仅靠 syslog 守护进程和 journald 无法实现的监控。

EventLog Analyzer 的一些高级功能包括:

  • 统一可见性 将 syslog 和 journald 事件整合到单一可搜索的仪表盘中。
  • 实时威胁关联: 超越简单搜索,关联多个事件,实时检测复杂的多阶段攻击。
  • 可操作的安全性: 将原始日志条目转化为连贯且可操作的安全分析数据,用于威胁调查和响应。
  • 自动合规: 生成针对 HIPAA、PCI DSS 和 GDPR 等标准的预构建报告,具备日志归档和保留功能。

接下来是什么?

使用 EventLog Analyzer 集中管理您的 Linux 日志

将 journald、syslog 和网络设备日志汇聚到单一平台,实现日志管理、关联和合规。

常见问题解答

Journald 日志是由现代 Linux 系统上的 systemd-journald 服务收集的集中式结构化日志消息。它们包括内核、服务和应用程序输出,并以索引的二进制格式存储,允许通过 journalctl 工具快速搜索。

不,syslog 和 journald 不一样,但它们协同工作。Journald 是集成于 systemd 的现代二进制日志系统,而 syslog(syslog-ng 或 rsyslog)是较旧的标准文本协议,主要用于将日志写入文件或通过网络转发。

syslog 和 journald 之间的主要区别包括:

功能 journald Syslog
主要来源 Linux 系统上所有 systemd 服务的日志。 各类 syslog 服务器、设备和应用程序的日志。
日志格式 结构化二进制索引,带丰富元数据。 纯文本日志。
访问工具 使用功能强大的命令行工具 journalctl。 使用 Linux 命令行工具,如 cat、grep 和 less。

可以,在现代系统中,journald 作为主要收集器,可以配置为将消息转发到本地 syslog 守护进程,从而允许两个系统共同管理日志。

EventLog Analyzer 受信赖于

洛斯阿拉莫斯国家银行 密歇根州立大学
松下 Comcast
俄克拉荷马州立大学 IBM
埃森哲 美国银行
印孚瑟斯
安永

客户评价

  • 丹佛信用合作社使用 EventLog Analyzer 超过四年,用于内部用户活动监控。EventLog Analyzer 作为网络取证工具和合规尽职调查工具,提供了极大价值。该产品可以快速扩展以满足我们动态的业务需求。
    Benjamin Shumaker
    IT 副总裁 / ISO
    丹佛信用合作社
  • 我喜欢该应用程序的最大优点是结构良好的 GUI 和自动化报告。这对网络工程师在单一仪表板上监控所有设备非常有帮助。预设报告设计巧妙。
    Joseph Graziano, MCSE CCA VCP
    高级网络工程师
    Citadel
  • EventLog Analyzer 是我们信息技术需求中一个优秀的事件日志报告和警报解决方案。它减少了我们筛选事件日志的时间,并几乎实时提供管理员定义的警报通知。
    Joseph E. Veretto
    运营审查专家
    信息系统办公室
    佛罗里达州交通部
  • Windows事件日志和设备Syslogs是计算机或网络上发生情况的实时摘要。EventLog Analyzer是一款经济实用且易于使用的工具,通过推送实时和定时的警报与报告,让我了解网络中的动态。它是一款高级软件入侵检测系统应用。
    Jim Lloyd
    信息系统经理
    First Mountain 银行

奖项与认可

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
综合日志管理的单一控制面板