这是我所做的:

这是我所做的:

我正在尝试配置 rsyslog(Ubuntu 12.04 Server)来记录来自路由器的事件。我发现这个旧的ubuntu 论坛帖子这让我走到了那里的大部分路程。

到目前为止,我能够从路由器获取记录的事件。但是,由于我没有登录,因此/var/log/syslog我尝试设置一个工作过滤器/etc/rsyslog.conf以将记录的事件放入/var/log/linksys.log。这就是我遇到麻烦的地方。

  • 首先我尝试通过路由器 IP 地址进行过滤,如下所示:

    :fromhost-ip, isequal, "192.168.2.1" /var/log/linksys.log
    & ~
    

    这成功地重定向了我想要的日志,唯一的问题是现在我在 auth.log 中没有收到任何 SSHD 日志。不用说,这是不可接受的。

  • 接下来我尝试按每个事件日志中出现的路由器名称进行过滤:

    :msg,contains, "RV042" /var/log/linksys.log
    & ~
    

    尽管这既不记录也不阻止任何内容。

所以我被难住了。我不知道为什么 SSHD 会被过滤器过滤掉:fromhost-ip。SSHD 在装有 rsyslog 的机器上是本地的(192.168.2.2)。我对此感到非常沮丧,任何建议都非常感谢。

答案1

我找到了!这些链接有帮助:

http://www.rsyslog.com/tag/udp/

http://www.rsyslog.com/doc/multi_ruleset.html

这是我所做的:

打开文件/etc/rsyslog.d/50-default.conf并在文件顶部,在所有其他默认过滤器之前,我添加了:

# process remote messages
# define new ruleset and add rules to it:
$RuleSet remote
*.*           /var/log/linksys.log
# only messages not from 192.168.2.1 make it past this point

# bind ruleset to UDP listener
$InputUDPServerBindRuleset remote
# and activate it:
$UDPServerRun 514

# switch back to the default ruleset:
$RuleSet RSYSLOG_DefaultRuleset

答案2

/etc/rsyslog.conf不是要编辑的正确文件。您确实需要设置一个单独的.conf文件:

$ sudo nano /etc/rsyslog.d/20-router.conf

然后添加所需的配置:

:fromhost-ip, isequal, "192.168.2.1" /var/log/linksys.log
& ~

这不会混淆任何其他日志条目。我自己试过,效果很好。

谢谢http://nickhumphreyit.blogspot.co.uk/2012/09/how-to-setup-syslog-server-on-ubuntu.html在放弃文档之后,给了我答案。

您可能还想添加一个logrotate文件/etc/logrotate.d/linksys

/var/log/linksys.log {
       daily
       rotate 7
       delaycompress
       compress
       notifempty
       missingok
}

相关内容