rsyslog 필터 심각도가 작동하지 않습니다.

rsyslog 필터 심각도가 작동하지 않습니다.

원격 서버에 로그를 보내려면 다음 Rsyslog 구성이 있습니다. 문제는 원격 서버에 많은 정보 메시지를 보내는 데 그 소음을 원하지 않는다는 것입니다. 모든 심각도 로그는 보내지만 정보는 보내지 않도록 필터를 구성하려고 합니다.

# Ansible managed

$WorkDirectory /var/spool/rsyslog
$template RFC3164fmt,"<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg%"

# Log shipment rsyslog target servers
$ActionQueueFileName ostack-log-01_rsyslog_container-04cb9e3a
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount 250
local7.* @172.28.1.205:514;RFC3164fmt

이것이 내가 성공하지 못한 일입니다.

local7.*;local7.!=info @172.28.1.205:514;RFC3164fmt

내 운영 체제는 Centos7.5 Linux입니다.

답변1

이것이 여기서 일어나는 일입니다. 내 syslog 메시지에는 INFO로그가 표시되지만 tcpdump에서는 syslog 심각도가 표시되는 것을 발견했습니다. notice이것이 바로 혼란입니다.

local7.*;local7.!=notice;local7.!=info @172.28.1.205:514;RFC3164fmt

logger가짜 로그를 생성하는 도구를 사용하여 이 규칙을 테스트하는 방법은 다음과 같습니다.

logger -p 'local7.info' 'This is info logs, Reject it'
logger -p 'local7.notice' 'This is notice logs, Reject it'
logger -p 'local7.error' 'This is error logs and Accept it'

답변2

아직 수행하지 않은 경우 필터로 업데이트한 후 rsyslog 서비스를 다시 시작해야 할 수도 있습니다.

rsyslog.conf 파일을 업데이트한 후 rsyslog 서비스를 다시 시작하십시오.

# service rsyslog restart        # CentOS/RHEL 6
# systemctl restart rsyslog

관련 정보