Logs

如何擺脫 rsyslog 自己的“程序名”和“syslogtag”屬性中的數字後綴

  • August 9, 2019

我將日誌從本地 rsyslogs 轉發到中央 rsyslog,然後到 Elasticsearch。一切正常,但error由 rsyslog 本身生成的具有嚴重性的條目具有programname類似rsyslog-2222rsyslog-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-nameprop,它是 IETF 草案 draft-ietf-syslog-protocol 中的一個欄位。我剛換了

property(name="programname")

property(name="app-name")

到目前為止,沒有更多奇怪的程序名稱。

從您的範例來看,數字中似乎rsyslogd-2039是錯誤號。我找不到記錄在哪裡。您已經找到了使用替代欄位的正確答案,但為了完整起見,這裡是如何在第一個連字元 ( "-") 處截斷程序名。您可以使用屬性替換器來選擇欄位 1,其中欄位由十進制程式碼 45(ascii 連字元)的字元分隔。

%programname:F,45:1%

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