我已经在我的Mavericks服务器上启用了日志记录,所有内容都写入了system.log。
我已将我的MAC系统日志服务器设置为我的网络路由器的远程日志服务器,这工作正常,但所有内容都写入system.log,理想情况下我希望它转到 / var /log/router.log
我已创建router.log,并设置所有权和权限,但如何仅将路由器日志发送到该日志文件?
日志看起来与此类似:
Mon Apr 28 08:48:10 2014: <12>Apr 28 08:48:00 kernel: DROP IN=ppp0 OUT= MAC= SRC=203.58.25.11 DST=80.xxx.xx.xx LEN=131 TOS=0x00 PREC=0xA0 TTL=107 ID=96 PROTO=UDP SPT=29604 DPT=50976 LEN=111
Mon Apr 28 08:48:12 2014: <12>Apr 28 08:48:01 kernel: DROP IN=ppp0 OUT= MAC= SRC=88.195.144.252 DST=80.xxx.xx.xx LEN=52 TOS=0x00 PREC=0xA0 TTL=114 ID=17397 DF PROTO=TCP SPT=63285 DPT=50976 SEQ=294340858 ACK=0 WINDOW=64240 RES=0x00 SYN URGP=0 OPT (020405B40103030201010402)
Mon Apr 28 08:48:12 2014: <12>Apr 28 08:48:01 kernel: DROP IN=ppp0 OUT= MAC= SRC=113.201.73.109 DST=80.xxx.xx.xx LEN=126 TOS=0x00 PREC=0x20 TTL=45 ID=10052 PROTO=UDP SPT=34680 DPT=50976 LEN=106
但还有其他条目,如:
Mon Apr 28 09:08:48 2014: <30>Apr 28 09:08:37 dnsmasq-dhcp[228]: DHCPDISCOVER(br0) aa:ad:bb:11:cc:dd
Mon Apr 28 08:59:15 2014: <30>Apr 28 08:59:05 pptpd[1773]: CTRL: Starting call (launching pppd, opening GRE)
Mon Apr 28 08:59:15 2014: <30>Apr 28 08:59:05 pptp[1774]: Plugin pptp.so loaded.
日志不显示路由器名称或IP地址,因此syslog足够智能,允许我从特定IP地址登录或是否有其他方法。 ?
我已经读过我应该使用asl.conf,但我不确定要配置什么才能使其正常工作。
我们将非常感激地提供任何帮助或建议: - )
由于
关注
我查看了原始syslog输出以找到主机,我已将以下内容添加到我的asl.conf中:
? [A= Host kernel:] file /var/log/router.log file_max=5M all_max=50M
? [A= Host kernel:] ignore
? [A= Host pptp] file /var/log/router.log file_max=5M all_max=50M
? [A= Host pptp:] ignore
? [A= Host pptpd] file /var/log/router.log file_max=5M all_max=50M
? [A= Host pptpd:] ignore
重新启动com.apple.syslogd.plist,现在日志将转到router.log。
几个问题。 日志仍然会转到system.log,我该怎么做呢?我认为忽略会这样做..
日志显示为:
Apr 29 12:41:12 kernel: Unknown <Warning>: DROP IN=ppp0 OUT= MAC= SRC=110.200.88.19 DST=80.xxx.xxx.xxx LEN=129 TOS=0x00 PREC=0xA0 TTL=40 ID=5080 PROTO=UDP SPT=20884 DPT=50976 LEN=109
以前在日志中没有。无论如何要删除它?
由于
答案 0 :(得分:1)
您的后续行动中的第二个和第三个忽略规则无效,因为您使用了前缀匹配(A=
)错误的前缀( pptp:和的 PPTPD:强>)。从末端移除结肠应该修复它们。
这些是您示例中的实际完整主机名:
kernel:
pptp[1774]:
pptpd[1773]:
因此,您可以使用完全匹配(=
),如下所示:
> router.log file_max=5M all_max=50M
? [= Host kernel:] file router.log
? [= Host pptp\[1774\]:] file router.log
? [= Host pptpd\[1773\]:] file router.log
请注意,您可以在开头只指定一次日志文件(router.log)的详细信息,并且不需要提供绝对路径(/var/log/router.log )只要您希望您的文件位于默认位置(/ var / log /)
另外,因为我使用主机完全匹配,我必须给出确切的名称,在2个案例中包含方括号(pptp [1774]:和pptp [1774] :)必须使用&#39; \&#39;
或者,您可以像跟进一样使用前缀匹配(A=
)来合并最后两条规则:
> router.log file_max=5M all_max=50M
? [= Host kernel:] file router.log
? [A= Host pptp] file router.log
然后,您可以添加相同的忽略规则,但忽略&#39;作为一种行动:
? [= Host kernel:] ignore
? [A= Host pptp] ignore
从您给出的示例看起来您应该考虑从路由器生成日志的另一台主机(dnsmasq-dhcp [228] :):
? [A= Host dnsmasq-dhcp] file router.log
您还可以直接在syslog工具上应用过滤器进行确认:
syslog -F raw -k Host kernel: # print raw logs from Host 'kernel:'
syslog -F raw -k Host pptp[1774]: # print raw logs from Host 'pptp[1774]:'
还有一点需要注意的是,某些规则也可以在/etc/syslog.conf
中定义,但在OSX中,您只能通过&#39; Facility&#39;来过滤。和&#39;等级&#39;缺少“主持人”的额外选项。和&#39;流程&#39;例如,在FreeBSD中存在。在这种情况下,/etc/asl.conf
确实是可行的方法。