rsyslogリスナーのコンソールがフラッディングされないようにリモートパニックイベントを無効にする方法は?

rsyslogリスナーのコンソールがフラッディングされないようにリモートパニックイベントを無効にする方法は?

集中型ロギング施設でデフォルト値を許可しながら、リモート緊急メッセージがユーザーコンソールにあふれないようにする方法

*.emerg    :omusrmsg:*

地域の緊急事態が発生した場合?

特に、リモート緊急メッセージをログファイルに記録して電子メールを送信したいのですが、リモートシステムはプライマリサーバーの操作を妨げてはいけません。

デフォルトサーバーはRHEL 7.4 x86_64
rsyslogバージョン:8.24.0です。

サーバーサイド構成(フラグメント):
/etc/rsyslog.conf:

$ModLoad imuxsock
$ModLoad imjournal
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
*.emerg    :omusrmsg:*
$OmitLocalLogging on

/etc/rsyslog.d/listen.conf:

$systemLogSocketName /run/systemd/journal/syslog

答え1

新しい /etc/rsyslog.d/remote-emerg.conf ファイルが作成されます。

$template myFormat0,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg:::drop-last-lf\n"
if $fromhost-ip != '127.0.0.1' and $syslogseverity-text == 'emerg' then {
*.emerg /var/log/remote/PANIC;myFormat0
stop
}

ノート:%FROMHOST-IP%の代わりに%HOSTNAME%を試してみましたが、リモートホスト名が正しく設定されていても、常にlocalhostが印刷されます。

テストに行くローカルおよびリモートホストで実行:

logger -p daemon.emerg "TEST from $HOSTNAME"

ローカル実行はコンソールに印刷され、リモート実行はPANICファイルにのみ書き込まれます。

関連情報