如何启用syslogd以从OSX中的路由器接收UDP日志

时间:2009-07-26 21:08:11

标签: macos udp router syslog

偶尔路由器坏了,我想获取路由器日志。

虽然有些路由器有内置的日志查看器,但有些则没有。大多数路由器似乎都有使用syslog将日志发送到另一台主机的工具。

如何让OSX(客户端)接收这些日志? OSX有一个syslogd,但说明书最多也是不透明的。

也许一个不同的客户端应用程序会更好,但我更喜欢一种方法,我可以在没有通过互联网下载刚刚崩溃的工具的情况下破解......

OSX本身没有netcat,否则我会尝试过。

4 个答案:

答案 0 :(得分:2)

使用可能适用于OS X的syslog-ng,虽然我不确定,但我通过家庭网络从我的wifi路由器捕获系统日志消息到我的日志服务器,有以下3行:

 source net { udp(); };

 destination wifirouter { file("/opt/var/log/wifirouter.log"); };

 log { source(net); destination(wifirouter); };

然后将wifi路由器配置为使用日志服务器的IP地址和wifirouter标识符。您可以将源行修改为仅接受某些源IP地址。

答案 1 :(得分:2)

使用Mac OS syslogd库存所需的“魔力”如下所示。

编辑syslogd的启动配置, /System/Library/LaunchDaemons/com.apple.syslogd.plist (您需要是root用户,或使用'sudo vi'或您最喜欢的其他方法编辑这个。)

(有些版本似乎已经注释掉了必要的部分,但我的其中一部分没有。)

以下之后:

 <key>Sockets</key>
 <dict>
 ...
     <key>BSDSystemLogger</key>
     <dict>
     ...
     </dict>

添加或取消注释(删除前导“”行),此部分:

     <key>NetworkListener</key>
     <dict>
          <key>SockServiceName</key>
          <string>syslog</string>
          <key>SockType</key>
          <string>dgram</string>
     </dict>

然后完全重启syslogd(即使用launchctl,再次以root身份)

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist

(我认为这个问题/答案可能属于superuser.com?也许有人可以将其移除。)

答案 2 :(得分:1)

仅供参考,可以使用XCode套件附带的属性列表编辑器编辑二进制plist文件,也可以使用第三方编辑器Text Wrangler。我没试过,但我怀疑BBEdit能够编辑它,考虑到它与TextWrangler的血统。

答案 3 :(得分:1)

从OS X 10.7及更高版本开始,您应该参考此StackOverflow answer来解决此问题。