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