Ubuntu

Rsyslog 在遠端發送之前丟棄消息 - 過濾器不起作用

  • March 13, 2022

在 rsyslog 將它們發送到遠端日誌伺服器之前,我正在努力刪除某些 syslog 消息。

這是我的整個 rsyslog.conf 文件,如下所示:

# /etc/rsyslog.conf configuration file for rsyslog
#
# For more information install rsyslog-doc and see
# /usr/share/doc/rsyslog-doc/html/configuration/index.html
#
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf

#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
#module(load="immark")  # provides --MARK-- message capability

# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")

###########################
#### GLOBAL DIRECTIVES ####
###########################

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Filter duplicated messages
$RepeatedMsgReduction on

#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog

:msg, contains, "sudo: pam_unix(sudo:session):" ~
:msg, contains, "sudo:   zabbix : TTY=unknown ; PWD=/ ; USER=root ;" ~

*.*     @192.168.3.2:514

重新啟動服務後,我繼續在遠端日誌伺服器上獲取 sudo 消息。

甚至可以在遠端發送消息之前丟棄消息嗎?

我必須在rsyslog.d.conf 主文件中使用基於優先級的文件嗎?

我在 Ubuntu 20.04.3 上執行 Rsyslog 8.2001。

旁注:我知道 ~ 已棄用,但使用stop也沒有丟棄消息。

那是因為sudois :programname,並且不在:msg. 因此,您需要編寫一個基於表達式的過濾器。

if $programname == 'sudo' and ( $msg contains 'pam_unix(sudo:session)' 
       or $msg contains 'zabbix : TTY=unknown ; PWD=/ ;USER=root' )
then stop

*.*     @192.168.3.2:514

引用自:https://unix.stackexchange.com/questions/694052