本地日志文件不兼容RFC5424的原因及syslog格式疑问
Ubuntu/Fedora中/var/log/messages日志格式的说明
你看到的这类日志并非无特定语法遵循,也不是本地专属格式,而是遵循传统BSD syslog规范(RFC 3164)——这是比RFC 5424更早的syslog标准。
以下是关键细节:
- 两种标准的核心差异:
- RFC 3164(旧标准):没有版本标识字段,日志行开头为缩写时间戳(如
Oct 12 14:32:01)、主机名、进程名/ID,最后是消息内容,典型格式示例:Oct 12 14:32:01 localhost sshd[1234]: Accepted publickey for user from 192.168.1.100 port 22 ssh2 - RFC 5424(新标准):强制要求开头包含版本标识(通常为
1),结构更严谨,格式为<PRI>VERSION TIMESTAMP HOSTNAME APP-NAME PROCID MSGID STRUCTURED-DATA MSG,典型示例:<14>1 2023-10-12T14:32:01.123Z localhost sshd 1234 - - Accepted publickey for user from 192.168.1.100 port 22 ssh2
- RFC 3164(旧标准):没有版本标识字段,日志行开头为缩写时间戳(如
- 系统默认用旧格式的原因:Ubuntu和Fedora默认使用的rsyslog或syslog-ng这类日志服务,会默认兼容RFC 3164格式——大量 legacy 系统、工具依赖这种旧格式,默认使用它能避免兼容性问题。
- 切换到RFC 5424的方法:可以修改日志服务的配置文件,比如在rsyslog中添加
$ActionFileDefaultTemplate RSYSLOG_SyslogProtocol23Format配置项,重启服务后就能生成符合RFC 5424标准的日志。
内容的提问来源于stack exchange,提问作者GabrijelOkorn
相关产品推荐
相关产品推荐

