客户端的 Rsyslog 过滤器

客户端的 Rsyslog 过滤器

我设置了一个可以接收来自客户端的消息的 Rsyslog 服务器。问题是所有内容都连接到 /var/log/syslog,所以我尝试设置一个过滤服务器端。

我在末尾添加了这一行/etc/rsyslog.conf

if $fromhost-ip == '123.123.123.123' then /var/log/clientA.log

但是根本不起作用(即使我将其替换==!=,也确实很奇怪)。当然我没有忘记重启服务。

欢迎任何想法。

答案1

我们的配置有一些额外的错误检查,以防止随机主机生成日志。

# Templates                    
$template RemoteHost,"/data/log/remote/%HOSTNAME%/%$YEAR%/%$MONTH%-%$DAY%.log"
$template Garbage,"/data/log/remote/GARBAGE/%HOSTNAME%/%$YEAR%/%$MONTH%-%$DAY%.log"

# Discard SNMPD Connection Messages
if $programname == 'snmpd' and ( $msg contains 'Connection from UDP' or $msg contains 'Received SNMP packet(s) from UDP' ) then ~

# Archival Storage
#    All Messages, locally and remote stored to these rules
if $hostname contains '.mydomain.com' or $hostname contains '.myotherdomain.com' or $hostname contains '.local' then { 
  *.* ?RemoteHost 
} else { 
  *.* ?Garbage
}

# If not sourced locally, stop processing message.
:source , !isequal , "syslog1" ~

答案2

现在它正常工作了。这是一个权限问题。我检查了日志文件touch并修复了它。chmod

相关内容