我是 Linux 和 rsyslog 的新手。我已经使用日志文件很多年了,但我从来不需要设置一个。此时,我有一些概念验证设备指向我的 Debain Linux 服务器。我有 syslog 消息进入并写入单个文件:/var/log/prd/fwlog 我只关心 3 种设备类型 - 交换机、路由器和防火墙。(所有 cisco)我的 rsyslog.conf 相当简单,我只修改了基本配置,注释掉了我不喜欢/不需要的东西?
剪掉注释掉的东西。
$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
最后我的问题!
我想在带有名为“rslog-YYYY-MM-DD”的日期戳的日志中旋转和分离路由器和交换机,还将防火墙放入带有名为“fwlog-YYYY-MM-DD”的日期戳的日志中
我想在 48 小时后压缩(gzip?)日志。
我需要在我的配置中添加什么?
我想我在 /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
}
提前感谢您的帮助!
首先,您需要将防火墙和交换机与 rsyslog 中的过滤分开。具体如何执行此操作取决于您正在运行的 rsyslog 版本。随着时间的推移,他们已经改变了相当多的配置语法。我下面的笔记基于 Red Hat 附带的旧版本 Rsyslog v3。您将需要根据您的版本的文档来验证这一点。
对于基于属性的过滤器,它看起来像;
下一部分是您想要的文件名。为此,您将过滤与 rsyslog 的模板相结合,为您的日志生成动态文件名。
最后一部分,压缩,将依赖于压缩文件的每日 cron 作业。(其中 $date 是 $today - 2。) date 命令已经具有 YYYY-MM-DD 的内置格式,所以我们将使用它。(
%F
)首先,您应该更多地了解 syslog 设施和严重性。这些代表您
*.*
在 conf 中添加的两个值。http://wiki.gentoo.org/wiki/Rsyslog#Facility
http://wiki.gentoo.org/wiki/Rsyslog#Severity
如果您可以将发送守护进程设置为对防火墙的路由器/交换机使用不同的设施和/或严重性,您应该能够轻松地在中央日志服务器上创建过滤规则,以便将日志分离到不同的文件中。已指定。例如,将路由器/交换机作为 local1 发送,将防火墙作为 local2 发送。
除了这些设置,您还可以通过过滤源 IP 地址将交换机日志与防火墙日志分开。rsyslog属性称为fromhost-ip。
设置入站 rsyslog 后,您需要微调 logrotate 设置。我认为对于初学者来说,两个文件路径都应该在一行上。在两天的日志之后进行压缩将需要一些额外的工作。看:
https://stackoverflow.com/questions/4495476/logrotate-compression-files-modified-x-number-of-days
您可以使用 logrotate -f /etc/logrotate.conf /etc/logrotate.d/rsyslog 进行测试
有关更多详细信息,请参阅:
http://articles.slicehost.com/2010/6/30/understanding-logrotate-on-debian-part-1