0

我需要有关使用 Ldap 高可用性杂项检查脚本的 keepalived 的帮助。

我们遇到了一个 LDAP 问题,突然用户无法通过应用程序和 su – ldapuser 登录系统,这种情况发生了两次。

在此期间,主 LDAP 服务器的连接数为 600,辅助 LDAP 服务器的连接数为 1000。

所有应用程序服务器都将通过 keepalived(负载平衡器)服务器进行联系,目前,我们有 2 个 lb 节点和 2 个 LDAP 节点。

LDAP 设计是主动和主动的,如果主要关闭,则请求转到辅助。

所以找到根本原因是非常困难的,我们尝试了很多,所以如果连接数很高,比如 600 或更多,我们就想在 LB 级别实现,然后切换到辅助服务器

我在这里寻求有关如何在 misc 中实施检查的建议,检查连接数检查是否合适或用于检查 LDAP 相关内容以切换到辅助服务器的任何其他参数。即使我不想这样做来自 lb 的 ssh 来检查 ldap 内容,我需要直接逻辑来检查和切换

目前,我们有如下的杂项检查脚本:

LB监控脚本:

virtual_server 10.X.X.X 389 {
    protocol TCP
    !service_name ldap
    persistence_timeout 0
    sorry_server 10.X.X.X 389
    lb_kind DR
    real_server 10.X.X.X 389 {
        MISC_CHECK {
            misc_path "/monitor.sh 389 10.X.X.X"
            misc_timeout 6
        }
        weight 1
    }
    lb_algo rr
    delay_loop 15

猫监视器.sh

#!/bin/bash
port=$1
ip=$2
timeout 1s /bin/bash -c "2>/dev/null >/dev/tcp/$ip/$port"
if [ $? -eq 0 ]
then
  echo "OK"
  RETURN_CODE=0
else
  echo "NOK"
  RETURN_CODE=1
fi

exit $RETURN_CODE

谢谢, Subhash Kumar.D

4

1 回答 1

0

检查端口打开它是一件要做的事情,但执行 LDAP 绑定将允许您检查服务是否“真的”响应 LDAP 请求。

根据您的 LDAP 服务器实现,对 rootDSE 中的某些内容进行 ldapsearch 并检查是否有合理的响应效果很好。

尽管您没有透露,但我假设这是一些“linux” LDAP 设置,它会生成日志。通常Linux端的这些LDAP日志会提供很多答案。

通常我们在这些类型的场景中看到的是 Linux 客户端的合理缓存设置不当。通常,在 Linux 上执行的每个命令都需要检查某些授权,因此需要 LDAP 调用。甚至“cd ..”

于 2020-05-10T10:33:51.853 回答