我build立了一个可以从客户端接收消息的Rsyslog服务器。 问题是,一切都连接到/ var / log / syslog,所以我试图build立一个过滤服务器端。
我在/etc/rsyslog.conf的末尾添加了这一行:
if $fromhost-ip == '123.123.123.123' then /var/log/clientA.log
但它根本不起作用(即使我用!=replace== !=这真的很奇怪)。 当然我不会忘记重新启动服务。
任何想法的欢迎。
我们的configuration有一些额外的错误检查,防止随机主机生成日志。
# 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" ~
现在正在工作。 这是一个许可问题。 我确实touch和chmod日志文件来解决它。