Zabbix 是否支持访问 ldap:hostname/... 检查?我尝试使用 HTTP 检查设置一个项目来检查以下内容:
ldap://{HOST.IP}/principalName=username,cn=Users,SECAUTHORITY=DEFAULT?dn??(&(secAcctValid=TRUE)(secPwdValid=TRUE))
但是它返回一个错误header is empty
,这暗示着它可能在 url 前附加了 http,或者忽略了 ldap://?我可以使用 Web 检查来实现相同的功能(并且它确实适用于我期望返回的必需字符串),我想这可以满足我的需求,但是能够查看我们目前正在使用的其他一些 ldap 检查的输出会更好。或者,是否可以只设置一个标准的 curl 请求?我看到了 system.run[command] 选项,但我不确定如何在 url 中转义逗号。
手动 curl 命令(使用不同的用户名)
curl -s --user user:pass ldap://IP-ADDRESS/principalName=username,cn=Users,SECAUTHORITY=DEFAULT
curl 的输出如下(删除了一些值)`DN:principalName=username,cn=Users,secAuthority=Default objectclass:objectclass:objectclass:objectclass:
secLoginType: Default:LDAP
principalName:
secUUID:
secDomainId:
secDN:
secHasPolicy: true
secAuthority: Default:
secPwdFailCountTime: 20160426150110.0Z
secPwdLastChanged: 20180924201506.0Z
secPwdValid: TRUE
secAcctValid: TRUE`
答案1
正如所述https://superuser.com/users/2914/wazooxHTTP 检查针对的是 HTTP 协议。它不适用于ldap://
URL 。
我建议您设置 UserParameter Item,它将通过curl
您所做的方式检查您的 LDAP 查询,并将值返回给 zabbix 服务器进行进一步评估。
用户参数文档:https://www.zabbix.com/documentation/5.0/manual/config/items/userparameters