偶尔路由器坏了,我想获取路由器日志。
虽然有些路由器有内置的日志查看器,但有些则没有。大多数路由器似乎都有使用syslog将日志发送到另一台主机的工具。
如何让OSX(客户端)接收这些日志? OSX有一个syslogd,但说明书最多也是不透明的。
也许一个不同的客户端应用程序会更好,但我更喜欢一种方法,我可以在没有通过互联网下载刚刚崩溃的工具的情况下破解......
OSX本身没有netcat,否则我会尝试过。
答案 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来解决此问题。