Log-Files
syslogd:日誌文件格式(不是配置格式)
我想解析日誌文件。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 且配置與您的配置相似的機器”。