2016-07-08 139 views
1

我想通过haproxy健康检查的优点和缺点发现在不同的端口从正常的交通。Haproxy健康检查端口

如果服务器变得过载,在其他端口上进行健康检查可能会将服务器标记为即使在过载时也处于启动状态。我认为这是一件好事,因为让服务器脱机可能会使超载问题变得更糟,但是要确认这是否合理。我似乎无法找到任何关于权衡的好文件,但想知道是否有人在权衡方面有很好的分析。

回答

1

port关键字通常与address一起用于将健康检查发送到您正在检查的服务的其他地方。一个例子可能是启用option httpchk来监视非HTTP服务。然后你做的是一个HTTP兼容的服务,当被查询时可以对你实际测试的服务执行复杂的健康检查。

以上通常在agent-check现在完成,但有些人更喜欢使用HTTP接口。

这也与服务器负载无关,唯一的想法是将健康检查发送给其他服务,而不是直接监控的服务,它更能够测试实际服务(可能通过使用更复杂的服务逻辑)并返回结果。例如,可以使用一个MySQL后端,而不是仅仅通过option mysql-check进行身份验证测试,可以通过PHP脚本进行测试,例如,检查备份是否正在运行以及是否返回5xx HTTP错误。配置可能类似于:

backend mysql 
    mode tcp 
    option httpchk GET /mysql-status.php 
    server mysqlserver 10.0.0.1:3306 check port 80