web-dev-qa-db-ja.com

rsyslog自身の 'programname' ang'syslogtag 'プロパティの番号サフィックスを削除する方法

ローカルrsyslogから中央rsyslogに、次にElasticsearchにログを転送しています。すべて正常に動作しますが、rsyslog自体によって生成された重大度errorのエントリには、Elasticsearchでの集約を中断するrsyslog-2222またはrsyslog-2039のようなプロパティprogramnameがあります。それらの番号が何であるかについての情報を見つけることができません。それらはランダムではなく、確かに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
Seweryn Niemiec

プロパティprogramnameは、syslogtagを解析することによって作成されます。 syslogtagは超標準化されていないようです。私の場合、app-name propを使用する方が良いです。これは、IETFドラフトdraft-ietf-syslog-protocolのフィールドです。交換したばかりです

property(name="programname")

property(name="app-name")

これまでのところ、奇妙なプログラム名はもうありません。

1
Seweryn Niemiec

あなたの例から、rsyslogd-2039番号はエラー番号です。これが文書化されている場所が見つかりません。代替フィールドを使用するための正しい答えはすでに見つかりましたが、完全を期すために、最初のハイフン("-")。 property replacer を使用して、フィールド1を選択できます。フィールドは10進コード45(ASCIIハイフン)の文字で区切られます。

 %programname:F,45:1%
1
meuh