
リモートrsyslogサーバーから重複したメッセージを受信しました。メールサーバーでclamavログキャプチャを設定しても、syslogにログが表示されます。
# Configuration for Mail ClamAV logs in rsyslog.d
if ($fromhost contains "mail") and ($programname contains "clam") then {
action(type="omfile" file="/var/log/mail-clam.log")
}
メールclam.log:
Jan 3 11:32:07 mail2 freshclam[265]: Received signal: wake up
Jan 3 11:32:07 mail2 freshclam[265]: ClamAV update process started at Thu Jan 3 11:32:07 2019
Jan 3 11:32:07 mail2 freshclam[265]: main.cld is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
Jan 3 11:32:07 mail2 freshclam[265]: daily.cld is up to date (version: 25264, sigs: 2197013, f-level: 63, builder: raynman)
Jan 3 11:32:07 mail2 freshclam[265]: bytecode.cld is up to date (version: 328, sigs: 94, f-level: 63, builder: neo)
システムログ:
Jan 3 11:32:07 mail2 freshclam[265]: Received signal: wake up
Jan 3 11:32:07 mail2 freshclam[265]: ClamAV update process started at Thu Jan 3 11:32:07 2019
Jan 3 11:32:07 mail2 freshclam[265]: main.cld is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
Jan 3 11:32:07 mail2 freshclam[265]: daily.cld is up to date (version: 25264, sigs: 2197013, f-level: 63, builder: raynman)
Jan 3 11:32:07 mail2 freshclam[265]: bytecode.cld is up to date (version: 328, sigs: 94, f-level: 63, builder: neo)
ログを除外するには、rsyslog.confに次の行があります。
*.*;auth,authpriv,mail.none -/var/log/syslog
$programname
システムログから除外する方法がわかりません。この問題を解決する正しい方法は何ですか?
*.*;auth,authpriv,mail.none,if ($programname contains "clam") then {} -/var/log/syslog
それともif文を何とか参照できますか?
答え1
構成ファイルの規則はrsyslog
上から下に評価されます。したがって、必要な処理後にログメッセージを削除するだけで、オプションのロギングを達成できます。 「停止」操作はログメッセージを削除するために使用されます。
状況に応じて、rsyslog.confファイルを次のように変更します。
if ($fromhost contains "mail") and ($programname contains "clam") then {
action(type="omfile" file="/var/log/mail-clam.log")
stop
}
...
*.*;auth,authpriv,mail.none -/var/log/syslog
この構成では、式に一致するすべてのメッセージが/var/log/mail-clam.logに書き込まれた後に削除されます。これにより、メッセージがさらに処理され、/var/log/syslogに書き込まれるのを防ぎます。