问题总结: 如果 ADFS 服务仍在运行但 ADFS 和 SQL 数据库之间的连接已断开,则对 ADFS 和 WAP 的 HTTP 探测是不够的。
ADFS 环境:
在环境中使用 HTTP 探针: 带有 HTTP 探针的 ADFS 环境
HTTP 探测: 对 ADFS 环境进行健康检查的正常方法是设置 HTTP 探测,对每个 WAP 和 ADFS 服务器 URL 或 IP 运行 HTTP 检查。他们通过 HTTP 端口 80 运行健康检查。返回 200(OK)。对这些探测端点的响应是 HTTP 200 OK,并且仅在本地检查服务器/服务,不依赖后端服务(SQL 集群\数据库)
结论: 对 ADFS 和 WAP 服务器使用 HTTP 探测是不够的
问题描述: HTTP 端口分别直接连接到 WAP 和 ADFS 服务器。这意味着他们只检查服务器和服务本身是否正常。存在一个已知问题,即 ADFS 后端和 SQL 服务器之间的连接会在 2-3 分钟后中断。在此期间,如果您不走运,ADFS 后端服务器会超时。这里的问题是,当 ADFS 后端服务器超时时,ADFS 服务本身仍在运行。(就 HTTP 探针而言,ADFS 仍在启动和运行。)HTTP 探针发出 ADFS 服务正常的信号. 因此,负载均衡器一直到将最终用户发送到与 SQL 数据库有死连接的 ADFS 服务,因为它的服务仍在运行。最终用户在身份验证期间最终会出错。
问题: 如何在 ADFS --> SQL 集群/数据库之间设置适当的健康检查?这样您就可以看到 ADFS --> SQL 之间的通信没有按预期工作。就像 ADFS 服务器上的服务仍在运行,但 ADFS 和 SQL 数据库之间的数据库连接已断开的情况一样。我希望将健康检查作为第一站用于监控。其次,您可以构建一些可以通过此运行状况检查执行的恢复步骤。