我有以下 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
这就是这里发生的情况,我的系统日志消息显示INFO
日志,但在 tcpdump 中我发现系统日志严重性显示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