将 OSX 作为系统日志服务器运行

Iai*_*ain 5 router logging asl syslog macos

我想从我的笔记本电脑(OSX 10.9)上的路由器(ASUS RT68U)接收日志。它支持 syslog 并且 OSX 具有ASL(显然是 syslog 的超集)。我已经按照OS X Lion 中的说明作为系统日志服务器,但控制台在 /var/log/network 下没有显示任何内容(尽管目录确实显示)。

我采取的步骤:

  • 在路由器的管理页面中设置我的笔记本电脑的 IP 以进行系统日志记录。
  • 更新了 syslog plist 以在网络上侦听。
  • 创建要登录的目录 (/var/log/network)。

这是我与 OSX 上 /etc 中的许多内容的说明略有不同的地方,如果它也有子文件夹结构,你最好在那里添加你的 conf 并留下主要的。所以,

  • 添加了 ASL 配置。这就是我认为问题所在。

/etc/asl/asus-router

# Asus router logs
? [A= Host router.asus.com] store_directory /var/log/network uid=0 gid=20 mode=0644 format=bsd rotate=seq compress file_max=5M all_max=50M
# I've also tried:
#? [= Host 192.168.1.1] …
#? [A= Host 192.168.1.1] …
#? [= Host router.asus.com] …
#? [= Sender router.asus.com] …
#? [A= Sender router.asus.com] …
#? [= IP router.asus.com] …
#? [A= IP router.asus.com] …
Run Code Online (Sandbox Code Playgroud)
  • 卸载并加载 syslog plist 以获取新的 conf。
  • 通过SSH登录路由器。这有助于添加一个日志条目,我得到了以下信息:

ssh 进入路由器

nvram show | grep log_level
size: 50509 bytes (15027 left)
log_level=6

ps | grep syslog
 9358 iain  1488 S    /sbin/syslogd -m 0 -S -O /tmp/syslog.log -s 256 -l 6 -R 192.168.1.140:514 -L
Run Code Online (Sandbox Code Playgroud)

最后,我关闭了防火墙并运行sudo tcpdump udp port 514. 我可以看到日志进入,但即使我重新加载 plist,控制台中也没有显示任何内容。

06:21:38.983497 IP router.asus.com.40420 > iains-air.syslog: SYSLOG authpriv.info, length: 86 
Run Code Online (Sandbox Code Playgroud)

至查看了RFC5424,看看我是否可以收集如何匹配主机名,但与 RFC 一样,它们非常抽象。我唯一能想到的就是编辑/etc/syslog.conf,但我不知道该怎么做。

任何建议或见解将不胜感激。

小智 1

我遇到了同样的问题,需要一个在我的 OSX 平台上运行的系统日志服务器来捕获来自我的网络设备的系统日志事件。我通过下载并安装以下应用程序“Lan-Secure Mac Syslog Server”解决了这个问题,该应用程序可以在以下链接中找到:http://www.lan-secure.com/SyslogServerMac.htm

一旦我安装了非常简单的软件,只需运行安装程序,我的 OSX 平台就开始收集系统日志事件并将它们显示在软件控制台上。我还启用了电子邮件通知功能,以便我能够立即收到有关重要事件的通知。