rsyslogを使用して一度に複数のメッセージを削除する方法は?これはうまくいかず、実際の例が見つかりません。
# Do not log any keepass and chmomium messages
if $programname == 'chromium.desktop' then /dev/null
if $programname == 'keepass2.desktop' then /dev/null
& stop
以下の回避策は機能しますが、確認するとエラーが表示されます。rsyslogd -N1 -f <config_file>
rsyslogd: version 8.4.2, config validation run (level 1), master config /etc/rsyslog.d/00-discard.conf
rsyslogd: CONFIG ERROR: there are no active actions configured. Inputs will run, but no output whatsoever is created. [try http://www.rsyslog.com/e/2103 ]
rsyslogd: run failed with error -2103 (see rsyslog.h or try http://www.rsyslog.com/e/2103 to learn what that number means)
答え1
この行は& stop
「前のセレクタを繰り返す」を意味し、「停止」操作を実行して、選択したメッセージの追加処理を停止します。したがって、if ...
各選択行の後に配置する必要があります。ただし、タスクが書き込み中であるため、最初の行/dev/null
で目的のタスクを実行することもできます。
if $programname == 'chromium.desktop' then stop
if $programname == 'keepass2.desktop' then stop
答え2
メッセージを削除する別の方法は次のとおりです。不要なメッセージを削除してください
例のように、「msg」属性の代わりに「programname」属性を確認してください。
:programname, contains, "chromium.desktop" ~
:programname, contains, "keepass2.desktop" ~