如何摆脱 rsyslog 自己的“programname”和“syslogtag”属性中的数字后缀

如何摆脱 rsyslog 自己的“programname”和“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 ]

答案1

属性programname是通过解析创建的syslogtag。看起来syslogtag不是超级标准化。就我而言,最好使用app-nameprop,它是 IETF 草案 Draft-ietf-syslog-protocol 中的一个字段。我刚刚更换了

property(name="programname")

property(name="app-name")

到目前为止,没有再出现奇怪的程序名称。

答案2

rsyslogd-2039从你的例子来看,数字中似乎是错误号。我找不到记录此内容的位置。您已经找到了正确的答案,即使用替代字段,但为了完整起见,这里介绍如何在第一个连字符 ( "-") 处截断程序名。您可以使用财产替代者选择字段 1,其中字段由十进制代码 45(ascii 连字符)的字符分隔。

 %programname:F,45:1%

相关内容