关于rsyslog不可靠的原因

缘起

人说rsyslogd丢日志,却未言起因,今好奇而查之。

闲话不闲

近几天不知缘何想起一个问题: tcp是有buffer的,在发送端和接收端都有,我们可以通过kill -19 serverpid使得数据阻塞在server端,也可以通过iptable在server端drop掉数据包,而使得数据阻塞在client端,总之,client app并不知道这些事情的发生,那么,如果现在server意外死掉,则buffer中的数据岂不丢失。(应该是吧,未曾验证)

换言之,对于tcp传输大量数据而言,如果是无格式的数据,在传输部分数据之后,接收方不想再接收数据了(可能是磁盘要满了),只想把buffer中的数据处理完就Ok了,如何告知发送方不要再发送数据了?

查看文档

 

On the (un)reliability of plain tcp syslog…

http://blog.gerhards.net/2008/04/on-unreliability-of-plain-tcp-syslog.html  rsyslogd的作者写过这么一篇文章来解释了rsyslogd不可考的一些原因,其中一点刚好是“闲话不闲”说的那种情况.

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据