任何人都知道如何在Mac上启动Syslogd服务器以接受远程日志记录消息?
我启动了Syslogd,但似乎它不接受远程消息。
如果我执行netstat -an,看起来udp端口514正在侦听。但是,如果我使用nmap从我的笔记本电脑扫描服务器,那么我没有看到udp 514.可能是某个端口被阻塞了。我检查了ipfw,但它看起来不像任何规则。
我看过很多文章说必须指定-r选项。这在Mac上是一样的吗? 如何在Mac上做到这一点?
答案 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
这将只打印出在输出上发送到您的机器的任何消息,以便您可以显示它。
无论如何,如果您执行此操作并输出正在传输到服务器的消息,您可以确定它不会被防火墙或中间的任何其他硬件阻止。