代码之家  ›  专栏  ›  技术社区  ›  Alex Brown

如何使syslogd从OSX中的路由器接收UDP日志

  •  2
  • Alex Brown  · 技术社区  · 17 年前

    有时路由器坏了,我想得到路由器日志。

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

    如何让OSX(客户端)接收这些日志?OSX有一个syslogd,但指令充其量是不透明的。

    OSX本机没有netcat,否则我会尝试这样做。

    4 回复  |  直到 17 年前
        1
  •  3
  •   Sean A.O. Harney    17 年前

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

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

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

        2
  •  2
  •   jrg    16 年前

    使用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?也许有人可以把它移过去。)

        3
  •  1
  •   vdubgeek    14 年前

    仅供参考,二进制plist文件可以使用XCode套件附带的属性列表编辑器进行编辑,也可以使用第三方编辑器文本Wrangler进行编辑。我还没有尝试过,但考虑到它与TextWrangler的关系,我怀疑BBEdit也可以编辑它。

        4
  •  1
  •   Community Mohan Dere    9 年前

    在OSX10.7及以上版本中,您应该参考此StackOverflow answer 对于这个问题。

    推荐文章