我在Ubuntu VBox vm上使用syslogd(包sysklogd)来记录来自远程主机的消息:VBox vm Windows xp java应用程序和log4j syslog appender。我发送10条超时100毫秒的消息,一切正常,但是syslogd将它们写入日志文件非常慢,5秒内记录1条记录。我在两个虚拟机上都使用了wireshark,所有的udp包都没有超时,所以syslog中存在问题。
May 17 17:05:09 192.168.130.198 16:57:48,055 ...| Test message ¹0
May 17 17:05:14 192.168.130.198 16:57:48,155 ...| Test message ¹1
May 17 17:05:19 192.168.130.198 16:57:48,255 ...| Test message ¹2
所有其他消息似乎都由syslog缓存。
问题:
如何消除这种延迟?我将把来自应用程序服务器集群的日志消息写入一个日志文件。 syslog能否在第二个处理500-1000 udp日志消息?
答案 0 :(得分:0)
我建议使用syslog-ng
而不是sysklogd
。
另一方面,问题也可能来自时间同步问题。将ntp与两个主机一起使用。
答案 1 :(得分:0)
在完全相同的问题后偶然发现了这个问题,随后发现这是由于日志服务器反向DNS查询的延迟和失败。
对于sysklogd
,为我工作的快速修复(没有为内部网络设置DNS服务器)是添加一个条目,例如
192.168.130.198 any-hostname
/etc/hosts
中的。