rsyslog – configuration帮助 – logrotate和压缩

我是Linux和rsyslog的新手。 我已经使用了多年的日志文件,但我从来没有设置一个。 在这一点上,我有一些概念设备指向我的Debain Linux服务器。 我有系统日志消息进入和写入到一个单一的文件:/ var / log / prd / fwlog我只关心3种设备types – 交换机,路由器和防火墙。 (所有思科)我的rsyslog.conf是相当简单的,我只修改了基本的configuration,评论了我不喜欢/需要的东西?

剔除注释掉的东西。

$ModLoad immark # provides --MARK-- message capability $ModLoad imudp $UDPServerRun 514 $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 $WorkDirectory /var/spool/rsyslog $IncludeConfig /etc/rsyslog.d/*.conf *.* /var/log/prd/fwlog 

最后我的问题!

  1. 我想旋转和分离路由器和交换机在一个日志中的日志,称为'rslog-YYYY-MM-DD'也是防火墙到一个日志的日志,名为'fwlog-YYYY-MM-DD'

  2. 我想在48小时后压缩(gzip?)日志。

我需要添加到我的configuration?

我想我把目录和文件添加到/etc/logrotate.d/rsyslog中的rsyslog中

 /var/log/syslog { rotate 7 daily missingok notifempty delaycompress compress postrotate invoke-rc.d rsyslog rotate > /dev/null endscript } /var/log/prd/fwlog* /var/log/prd/rslog* { rotate 4 weekly missingok notifempty compress delaycompress sharedscripts postrotate invoke-rc.d rsyslog rotate > /dev/null endscript } 

提前感谢任何帮助!

我想旋转和分离路由器和交换机在一个日志中的日志,称为'rslog-YYYY-MM-DD'也是防火墙到一个日志的日志,名为'fwlog-YYYY-MM-DD'

首先,您需要在rsyslog中使用筛选来分隔您的防火墙和交换机。 具体如何做到这一点根据您正在运行的rsyslog的版本而有所不同。 他们随着时间的推移改变了configuration语法。 我下面的注释是基于Red Hat发布的Rsyslog v3的旧版本。 您将需要根据您的发行版的文档进行validation。

对于基于属性的filter,它将看起来像是;

 :fromhost-ip,isequal,"192.168.1.1" /var/log/prd/fwlog &~ :fromhost-ip,isequal,"192.168.1.254" /var/log/prd/rslog &~ 

接下来的部分是你想要的文件名。 为此,您需要将筛选与rsyslog的模板结合起来,为您的日志生成dynamic文件名。

 $template Firewall,"/var/log/prd/fwlog-%$YEAR%-%$MONTH%-%$DAY%" $template Switch,"/var/log/prd/rslog-%$YEAR%-%$MONTH%-%$DAY%" :fromhost-ip,isequal,"192.168.1.1" -?Firewall &~ :fromhost-ip,isequal,"192.168.1.254" -?Switch &~ 

我想在48小时后压缩(gzip?)日志。

最后一部分,压缩,将依靠每日压缩文件的cron作业。 (其中$ date是$ today – 2)。date命令已经有一个内置的YYYY-MM-DD格式,所以我们将使用它。 ( %F

 gzip /var/log/prd/*-$(date --date='2 days ago' +%F) 

首先,您应该了解更多关于syslog设施和严重性的信息。 这些代表您在conf中添加为*.*的两个值。

http://wiki.gentoo.org/wiki/Rsyslog#Facility

http://wiki.gentoo.org/wiki/Rsyslog#Severity

如果您可以将发送守护程序设置为从防火墙对路由器/交换机使用不同的设施和/或严重级别,则应该能够轻松地在中央日志服务器上创build过滤规则,以便将日志分为不同的文件,已经指定。 例如,发送路由器/交换机local1和防火墙local2。

除了这些设置之外,还可以通过过滤源IP地址将交换机日志从防火墙日志中分离出来。 rsyslog属性被称为fromhost-ip 。

一旦你有入站rsyslog设置,你需要微调你的logrotate设置。 我认为这两个文件path应该在一个单一的线上为初学者。 在两天之后压缩原木需要额外的努力。 看到:

https://stackoverflow.com/questions/4495476/logrotate-compression-files-modified-x-number-of-days

你可以用logrotate -f /etc/logrotate.conf来testing/etc/logrotate.d/rsyslog

有关更多详情,请参阅

http://articles.slicehost.com/2010/6/30/understanding-logrotate-on-debian-part-1