Rsyslog는 메시지를 원격으로 보내기 전에 삭제합니다. 필터가 작동하지 않습니다.

Rsyslog는 메시지를 원격으로 보내기 전에 삭제합니다. 필터가 작동하지 않습니다.

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도 메시지가 삭제되지는 않습니다.

답변1

sudo에 있고 :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

관련 정보