Log-Files

syslogd:日誌文件格式(不是配置格式)

  • June 2, 2016

我想解析日誌文件。syslogd 的日誌文件格式是否對所有系統都相同?在我的系統(Debian Lenny)上,它是:

Mar  7 04:22:40 my-host-name ...

(我對 … 部分不太感興趣)

我可以依靠這個嗎?是否有一些或多或少的官方描述?的手冊頁syslogd描述了配置格式,但沒有描述日誌文件格式。

理想情況下,描述會給欄位提供官方名稱,例如(日期、時間、主機、條目)或(日期時間、主機名、消息)。也許另外一些正則表達式。我想在我的腳本中使用名稱和正則表達式,以避免不必要地偏離標準,並確保腳本到處執行。

謝謝

克里斯

RFC應該回答這個問題。據我所知:是的,通常是這樣。

Warner 向您指出的 RFC 3164 描述了 UDP syslog 消息的網路格式,您可以依靠這是通過網路傳輸的內容,但是 syslogd 在記錄您的消息時可能會寫入與磁碟略有不同的內容。

也就是說,您通常可以依賴類似於 RFC 中描述的系統日誌條目,大致形式如下:

DATE HOSTNAME TAG: MESSAGE

日期的格式Jan 1 00:00:01

主機名通常是短主機名,但可能是完全限定的(特別是如果您正在記錄來自遠端主機的消息)

標籤是自由格式的,但按照慣例不包含:. 它通常是形式的procname[PID],我相信後面總是跟一個字面的:

Message是自由形式的

如果您需要更好地保證日誌格式的一致性,syslog-NG 值得研究——它可以讓您定義欄位並插入標記,以確保您可以解析結果文件。syslog-NG 還允許您包含元數據,例如消息中的設施+優先級值。不過,使用 syslog-NG 可以將“無處不在”的定義簡化為“執行 syslog-NG 且配置與您的配置相似的機器”。

引用自:https://serverfault.com/questions/125056