我正在尝试记录我的 dd-wrt 路由器和我的 nas4free 设备。所有日志都发送到备用的 raspberrypi,并连接一个 usb 磁盘来存储日志文件。但我的 rsyslog.conf 文件有问题。已添加以下代码以将设备中的日志发送到插入 raspberrypi 的 usb 棒:
# logs for the wifi router are saved here:
$template ddwrtlogs,"/mnt/syslog/192.168.1.1.log"
*.* ?ddwrtlogs
#
# logs for the nas4free are saved here:
$template nas4freelogs,"/mnt/syslog/192.168.1.200.log"
*.* ?nas4freelogs
这适用于 192.168.1.1 设备,但在 192.168.1.200.log 文件中,我发现与 192.168.1.1.log 中的日志相同的日志。它只是将它们复制到两个位置。我的 nas4free 没有日志。
我更新了两个记录设备,将所有日志发送到 192.168.1.220(= raspberrypi)
事实上,我不知道如何让它记录两个设备。代码是错误的。我可以让它为一个设备工作,但如果我在 /etc/rsyslog.conf 中添加第二个设备,它就不起作用了。
提前感谢您的解决方案。
答案1
我是这样做的:
首先更改/etc/rsyslog.conf
文件。这是一个很长的配置文件,但你只需要更改以下几行:
# provides UDP syslog reception $ModLoad imudp $UDPServerRun 514
# provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
然后转到/etc/rsyslog.d/
并创建以你期望从中输入的设备命名的文件。这些是我的例子:
touch 10-ddwrt.conf
touch 20-nas4free.conf
这是每个文件的配置:
$template ddwrt, "/path/to/your/logfile/ddwrt.log" :fromhost-ip, isequal, "192.168.1.1" -?ddwrt & stop
$template nas4free, "/path/to/your/logfile/nas4free.log" :fromhost-ip, isequal, "192.168.1.200" -?nas4free & stop
最好的部分是,使用此配置,你的本地系统日志可以继续工作并保留在/var/log/
奖励中:我还更改了logrotate
配置。日志轮换提供了一种限制保留日志总大小的方法,同时仍允许分析最近的事件。
转到/etc/logrotate.d/
并添加你从中接收日志的设备。像这样:
touch ddwrt
touch nas4free
这是两个文件的配置:
/media/pi/USB/Logs/ddwrt.log { weekly rotate 7 size 50M notifempty create compress postrotate invoke-rc.d rsyslog rotate > /dev/null endscript }
/media/pi/USB/Logs/nas4free.log { weekly rotate 7 size 50M notifempty create compress postrotate invoke-rc.d rsyslog rotate > /dev/null endscript }