Linux
無法在 syslog 消息中獲取 Rsyslog 結構化數據
我是 syslog 模組的新手。我正在嘗試通過在模板中使用此參數來記錄帶有結構化數據的消息。但它顯示結構化數據的空值。我正在使用 rsyslogd 5.8.11 和 rsyslogd 4.8.4 並且對於這兩個版本我得到相同的結果。
我正在使用模板:
"<%PRI%>%TIMESTAMP:::date-rfc3339%%HOSTNAME%%syslogtag%%APP-NAME%%PROCID%%MSGID% %msg% %STRUCTURED-DATA%\n”
獲取消息格式如下:
<142> 2015-01-29T06:43:53.081641-05:00 localhost login[2116]: login 2116 - [2116 : 2116 INFO]SERIAL Login from IP:127.0.0.1 user:admin -
有人能告訴我我做錯了什麼嗎?我只想在日誌文件中記錄帶有 SD-ID、SD-PARAM 的結構化數據的消息。
rsyslog 可以發出帶有結構化數據的 RFC5424 消息。
但是你也有辦法將 RFC5424 消息發送到rsyslog嗎?– 如果您直接通過 UDP 或 TLS 記錄您的消息,它應該可以工作。但是,如果您通過傳統的 BSD Syslog 功能登錄,則不會有任何結構化數據,也不會有任何 MSGID。(AFAIK NetBSD 擁有唯一一個支持 RFC5424 且帶有syslogp()函式的 libc。)
我也在努力實現這一目標。我設法找出如何使用模板發出 RFC5424 消息格式
RSYSLOG_SyslogProtocol23Format
。但是,我不知道如何向結構化數據添加欄位。此外,值得我使用 syslog-ng 成功發送/接收 RFC5424 格式。