如何在Mac上启动Syslogd服务器以接受远程日志记录消息?

时间:2011-04-01 07:56:15

标签: macos logging

任何人都知道如何在Mac上启动Syslogd服务器以接受远程日志记录消息?

我启动了Syslogd,但似乎它不接受远程消息。

如果我执行netstat -an,看起来udp端口514正在侦听。但是,如果我使用nmap从我的笔记本电脑扫描服务器,那么我没有看到udp 514.可能是某个端口被阻塞了。我检查了ipfw,但它看起来不像任何规则。

我看过很多文章说必须指定-r选项。这在Mac上是一样的吗? 如何在Mac上做到这一点?

2 个答案:

答案 0 :(得分:36)

Syslogd应该已经在您的系统上运行;您需要做的是启用其UDP侦听选项。这是由/System/Library/LaunchDaemons/com.apple.syslogd.plist末尾附近的部分控制的;删除注释标记,使其如下所示:

<!--
        Un-comment the following lines to enable the network syslog protocol listener.
-->
                <key>NetworkListener</key>
                <dict>
                        <key>SockServiceName</key>
                        <string>syslog</string>
                        <key>SockType</key>
                        <string>dgram</string>
                </dict>
        </dict>
</dict>
</plist>

然后通过重新启动或运行:

重新加载syslogd守护程序
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist

更新:从OS X v10.7开始,Apple将com.apple.syslogd.plist切换为二进制plist格式,该格式不包含相关注释,并且不能作为纯文本进行编辑。使用新格式,PlistBuddy似乎是添加侦听器的最简单方法:

cd /System/Library/LaunchDaemons
sudo /usr/libexec/PlistBuddy -c "add :Sockets:NetworkListener dict" com.apple.syslogd.plist
sudo /usr/libexec/PlistBuddy -c "add :Sockets:NetworkListener:SockServiceName string syslog" com.apple.syslogd.plist
sudo /usr/libexec/PlistBuddy -c "add :Sockets:NetworkListener:SockType string dgram" com.apple.syslogd.plist
sudo launchctl unload com.apple.syslogd.plist
sudo launchctl load com.apple.syslogd.plist

答案 1 :(得分:4)

有点老了,但今天我确实要做到这一点,在搜索一个简单的软件来为我做这个时,我遇到了这个问题。

我真正想做的就是在短时间内观看一些系统日志条目,看看服务器发生了什么,所以我最终做的是:

sudo tcpdump -lns 0 -w - udp and port 514 | strings

这将只打印出在输出上发送到您的机器的任何消息,以便您可以显示它。

无论如何,如果您执行此操作并输出正在传输到服务器的消息,您可以确定它不会被防火墙或中间的任何其他硬件阻止。