我们需要确保HAProxy日志实际上已经成功地写入到磁盘,然后将即将到来的请求交给我们的服务器。 换句话说,我们需要HAProxy进行同步logging并阻塞,直到日志安全写入磁盘。 这可能吗? 怎么样?
谢谢!
@geeko,
HAProxy不做任何日志logging到磁盘,只有syslog。
从1.7pipe理手册,但所有版本都是一样的:
对于日志logging,HAProxy始终依赖于系统日志服务器,因为它不执行任何文件系统访问。 使用它的标准方法是通过UDP将日志发送到日志服务器(默认情况下在端口514上)。 非常常见的情况是将其configuration为127.0.0.1,其中本地syslog守护进程正在运行,但是也通过networking用于login到中央服务器。
鉴于日志不是从HAProxy本地写入磁盘,而只是通过系统日志(通常通过UDP)发送,所以没有真正的方法可以绝对保证 haproxy看到的每个日志都被写入。
事实上,当你开始将每个负载平衡器的数十万个请求敲击到一个点时,你可能会发现你的系统日志接收器上的垃圾收集甚至可能导致日志丢失。
例如,我们估计,由于垃圾收集,我们每天损失大约30,000条日志条目(这是我们从haproxy机器上看到的一小部分,我们认为这是在可接受的误差范围内)