Timestamps

為什麼 Linux syslog 文件不遵循 RFC3339 協議?

  • November 1, 2013

為什麼 Linux syslog 文件:/var/log/syslog 不遵循協議https://www.rfc-editor.org/rfc/rfc5424#page-11中定義的時間戳格式?

來自 RFC 5424(它制定了 syslog 協議並參考 RFC 3339 獲取時間戳)“1. Introduction”

本文件描述了系統日誌消息的標準格式並

概述了傳輸映射的概念。它還描述了

結構化數據元素,可用於傳輸易於

解析的結構化資訊,並允許供應商擴展。

**本文件未描述 syslog消息的任何儲存格式。它超出了 syslog 協議的範圍,

對於系統互操作性來說是不必要的。**

這裡的消息**是指要記錄的內容,而不是記錄的格式。 換句話說:日誌不是消息,RFC 是關於消息的,而不是日誌。

您看到的內容/var/log/syslog是“儲存格式”消息。該格式取決於您如何配置特定的系統日誌,並且正如前言所述,至少就“系統互操作性”而言,沒有任何協議的真正必要性。

Syslog 守護程序可以作為多個系統的記錄器。RFC 旨在設置一個標準,以便兼容的系統可以記錄到遠端系統日誌,而不管正在使用哪個特定實現等。

接收此類消息的 syslog 守護程序隨後會將它們寫入文件,但它不會逐字寫入它們 - 它會根據其配置寫入它們。如果您進一步查看 RFC,您會注意到有很多很多/var/log/syslog不符合要求的方式。看看第 6 節開頭的ABNF —— 這並不僅僅是描述日誌文件中的一行(注意時間戳幾乎不是第一項!)。這是用於序列化消息以進行傳輸的結構化格式。

引用自:https://unix.stackexchange.com/questions/98453