Logs
如何擺脫 rsyslog 自己的“程序名”和“syslogtag”屬性中的數字後綴
我將日誌從本地 rsyslogs 轉發到中央 rsyslog,然後到 Elasticsearch。一切正常,但
error
由 rsyslog 本身生成的具有嚴重性的條目具有programname
類似rsyslog-2222
或rsyslog-2039
破壞 Elasticsearch 中的聚合的屬性。找不到任何資訊這些數字是什麼。它們不是隨機的,也不是肯定的 PID。為什麼 rsyslog 會這樣做?
可以在 rsyslog 級別刪除這些數字嗎?
範例日誌:
2019-08-07T19:48:00+02:00 rsyslogd-2039 err Could not open output pipe '/dev/xconsole':: No such file or directory [v8.16.0 try http://www.rsyslog.com/e/2039 ] 2019-08-07T19:48:00+02:00 rsyslogd-2007 warning action 'action 10' suspended, next retry is Wed Aug 7 19:48:30 2019 [v8.16.0 try http://www.rsyslog.com/e/2007 ] 2019-08-07T19:00:39+02:00 rsyslogd-2222 err command 'KLogPermitNonKernelFacility' is currently not permitted - did you already set it via a RainerScript command (v6+ config)? [v8.16.0 try http://www.rsyslog.com/e/2222 ] 2019-08-07T19:00:39+02:00 rsyslogd-2039 err Could not open output pipe '/dev/xconsole':: No such file or directory [v8.16.0 try http://www.rsyslog.com/e/2039 ] 2019-08-07T19:00:39+02:00 rsyslogd-2007 warning action 'action 10' suspended, next retry is Wed Aug 7 19:01:09 2019 [v8.16.0 try http://www.rsyslog.com/e/2007 ]
屬性
programname
是通過解析創建的syslogtag
。看起來syslogtag
不是超級標準化的。在我的情況下,最好使用app-name
prop,它是 IETF 草案 draft-ietf-syslog-protocol 中的一個欄位。我剛換了property(name="programname")
和
property(name="app-name")
到目前為止,沒有更多奇怪的程序名稱。
從您的範例來看,數字中似乎
rsyslogd-2039
是錯誤號。我找不到記錄在哪裡。您已經找到了使用替代欄位的正確答案,但為了完整起見,這裡是如何在第一個連字元 ("-"
) 處截斷程序名。您可以使用屬性替換器來選擇欄位 1,其中欄位由十進制程式碼 45(ascii 連字元)的字元分隔。%programname:F,45:1%