支持
 
支持 获取报价
 
 
 
 

Syslog 与 journald

最后更新于:
 

Syslog:概述

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

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

准备好大规模实施 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 这样的结构化日志格式,便于与现代日志分析系统集成。它使用 RELP,这是一种基于 TCP 的应用层协议,确保日志传输过程中不丢包。

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

什么是 journald?

Journald,也称为 systemd-journald,是 systemd 套件中的集中式日志组件。它收集并存储来自所有系统组件的日志数据,统一存放在称为 systemd 日志的单一位置。它捕获内核(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 init 系统完全集成的单一组件。 涉及模块化架构。
跨平台 仅适用于带有 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 等结构化格式。这种标准化至关重要,因为它使中央监控工具能够解析和分析数据,无论其原始格式如何。守护进程还允许基于设施和严重性以及消息内容进行高级、细粒度的日志过滤,从而确保在日志接收端减少噪声并优化带宽。这确保了syslog 服务器和 SIEM 工具仅接收对安全监控至关重要的有用信息。

集中式日志转发

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

Syslog 服务器功能

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

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 银行

奖项与认可

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
全面日志管理的单一视窗