rsyslog relp – 防止将远程日志写入我的本地/ var / log

我使用rsyslog和relpbuild立了一个日志服务器。 只要接收远程日志并将其放置在/ var / spool / rsyslog中,它就可以正常工作。

我的问题是:这些消息中的大部分也出现在我的/ var / log / messages文件中,这些文件可能相当大,速度相当快。

我在日志服务器上的configuration:

#### MODULES #### $ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support (previously done by rklogd) # RELP config $ModLoad imrelp $InputRELPServerRun 2514 #### GLOBAL DIRECTIVES #### # 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 files $WorkDirectory /var/spool/rsyslog # Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf # global templates # DONT CHANGE UNLESS YOU KNOW WHAT YOU ARE DOING $ActionFileDefaultTemplate RSYSLOG_ForwardFormat $template precise,"%syslogpriority% %syslogfacility% %timegenerated% %HOSTNAME% %syslogtag% %msg%\n" $ActionFileDefaultTemplate precise # This should place all remote log items into /var/spool/rsyslog $template RemoteHost,"/var/spool/rsyslog/%programname%.log" # My brain says: this prevents anything coming in from a remote host from # being written in /var/log/whatever - MY BRAIN LIES TO ME! if ($hostname != 'my.server.name') then ?RemoteHost &~ 

我读的手册页说,主机名检查和“和号波浪”应该防止远程东西污染我的日志文件。

线索?

DISTRIB_DESCRIPTION =“Ubuntu 12.04.3 LTS”

你必须在你的rsyslogconfiguration文件中有类似的东西

 *.*;auth,authpriv.none -/var/log/syslog 

如果您看一下,您将注册所有设施的所有严重性,除auth和authpriv设施之外的系统日志文件。

只需添加您不想logging的设施,再加上“无”严重性即可。 IE:local6:

 *.*;auth,authpriv.none;local6.none -/var/log/syslog 

当然,修改configuration文件后,您必须重新启动或重新加载rsyslog守护进程。

希望这有助于,如果远非简单地使用复杂的rsyslogfilter。

我不确定您是否可以使用主机名称。

我个人使用$ fromip =='xxxx'作为不同文件名的条件。

下面是一个很好的例子,它适用于我的设置,虽然如果你有很多不同的IP范围可能是一个问题。

这是从复制

http://www.rsyslog.com/tag/more-complex-scenarios/

将消息从远程系统存储到特定的文件2010年2月23日,星期二

这是一个日志整合的情况。 至less存在两个系统,一个服务器和至less一个客户端。 服务器旨在收集来自所有客户端的日志数据。 客户可能(或不可能)在本地处理和存储消息。 如果他们这样做,这里没有关系。 查看配方将消息发送到远程系统日志服务器以了解如何configuration客户端。

来自192.0.1.xnetworking的远程主机的消息应写入一个文件,而来自192.0.2.xnetworking的远程主机的消息应写入另一个文件。 事情要考虑

TCP recpetion不是内置function。 您需要加载imtcp插件才能启用它。 这只需要在rsyslog.conf中完成一次。 在顶部做正确的。

请注意,$ InputTCPServerRun中指定的服务器端口地址必须与客户端发送消息的端口地址匹配。 configuration语句

 $ModLoad imtcp $InputTCPServerRun 10514 # do this in FRONT of the local/regular rules if $fromhost-ip startswith '192.0.1.' then /var/log/network1.log & ~ if $fromhost-ip startswith '192.0.2.' then /var/log/network2.log & ~ # local/regular rules, like *.* /var/log/syslog.log 

这是为我工作的。

用于接收来自远程主机的系统日志信息

 $template TempAuth, "/var/log/infosys/%HOSTNAME%/%PROGRAMNAME%.log" $template TempMsg, "/var/log/infosys/%HOSTNAME%/%PROGRAMNAME%.log" if ($fromhost-ip != "127.0.0.1" ) then ?TempAuth & ~ if ($fromhost-ip != "127.0.0.1" ) then ?TempMsg & ~