当 auth_ldap.log = RabbitMQ 中的网络时,auth_ldap.log 没有出现
auth_ldap.log is not appearing when auth_ldap.log = network in RabbitMQ
我为 RabbitMQ 创建了 rabbitmq.conf 和 advanced.config,旨在允许使用内部回退进行 LDAP 身份验证。因为 RabbitMQ 是愚蠢的并且试图使用安装用户的 appdata 这对于 Windows 服务来说是一个糟糕的设计,我还使用环境变量重定向了位置:
- RABBITMQ_BASE = D:\RabbitMQData\
- RABBITMQ_CONFIG_FILE = D:\RabbitMQData\config\rabbitmq.conf
- RABBITMQ_ADVANCED_CONFIG_FILE = D:\RabbitMQData\config\advanced.config
配置位置似乎工作正常,因为它们在启动信息中被引用并且不会在启动时导致错误。
rabbitmq.conf(修剪到相关部分)
auth_backends.1 = ldap
auth_backends.2 = internal
auth_ldap.servers.1 = domain.local
auth_ldap.use_ssl = true
auth_ldap.port = 636
auth_ldap.dn_lookup_bind = as_user
auth_ldap.log = network
log.dir = D:\RabbitMQData\log
log.file.level = info
log.file.rotation.date = $D0
log.file.rotation.size = 10485760
advanced.config
[
{rabbitmq_auth_backend_ldap, [
{ssl_options, [{cacertfile,"D:\RabbitMQData\SSL\ca.pem"},
{certfile,"D:\RabbitMQData\SSL\server_certificate.pem"},
{keyfile,"D:\RabbitMQData\SSL\server_key.pem"},
{verify, verify_peer},
{fail_if_no_peer_cert, true}
]},
{user_bind_pattern, ""},
{user_dn_pattern, ""},
{dn_lookup_attribute, "sAMAccountName"},
{dn_lookup_base, "DC=domain,DC=local"},
{group_lookup_base,"OU=Groups,DC=domain,DC=local"},
{vhost_access_query, {in_group, "cn=RabbitUsers,OU=Groups,DC=domain,DC=local"}},
{tag_queries, [
{administrator, {in_group, "CN=RabbitAdmins,OU=Groups,DC=domain,DC=local"}},
{management, {in_group, "CN=RabbitAdmins,OU=Groups,DC=domain,DC=local"}}
]}
]}
].
我正在使用 auth_ldap.log = network
,所以我的日志目录中应该有一个 ldap_auth.log 文件可以帮助我排除故障,但它不存在。为什么会出现这种情况?除了 .log 之外,我还没有看到 auth_ldap 日志记录的任何记录设置,所以我假设它会与其他日志一起使用。
我目前 运行 遇到 LDAP 问题,特别是错误 LDAP bind error: "xxxx" anonymous_auth
。因为我通过 auth_ldap.dn_lookup_bind = as_user
使用简单绑定,所以我不应该获得匿名身份验证。但是,如果没有详细的日志,我无法获得更多信息。
好吧,看来我在这里犯了两个错误:
回过头来重新阅读,看来我误解了文档并认为 auth_ldap.log
是一个单独的文件,而不仅仅是一个设置。所有 LDAP 日志记录都进入正常的 RabbitMQ 日志。
我从 https://groups.google.com/g/rabbitmq-users/c/Dby1OWQKLs8/discussion 中提取了 Luke Bakken 的配置,但以下几行最终为:
{user_bind_pattern, ""},
{user_dn_pattern, ""}
而不是
{user_bind_pattern, "${username}"},
{user_dn_pattern, "${ad_user}"},
我曾使用带有 herestring 的 Powershell 脚本来创建配置文件,该文件错误地将这些变量解释为空字符串。解决这个问题让我可以使用“domain\username”登录。
我为 RabbitMQ 创建了 rabbitmq.conf 和 advanced.config,旨在允许使用内部回退进行 LDAP 身份验证。因为 RabbitMQ 是愚蠢的并且试图使用安装用户的 appdata 这对于 Windows 服务来说是一个糟糕的设计,我还使用环境变量重定向了位置:
- RABBITMQ_BASE = D:\RabbitMQData\
- RABBITMQ_CONFIG_FILE = D:\RabbitMQData\config\rabbitmq.conf
- RABBITMQ_ADVANCED_CONFIG_FILE = D:\RabbitMQData\config\advanced.config
配置位置似乎工作正常,因为它们在启动信息中被引用并且不会在启动时导致错误。
rabbitmq.conf(修剪到相关部分)
auth_backends.1 = ldap
auth_backends.2 = internal
auth_ldap.servers.1 = domain.local
auth_ldap.use_ssl = true
auth_ldap.port = 636
auth_ldap.dn_lookup_bind = as_user
auth_ldap.log = network
log.dir = D:\RabbitMQData\log
log.file.level = info
log.file.rotation.date = $D0
log.file.rotation.size = 10485760
advanced.config
[
{rabbitmq_auth_backend_ldap, [
{ssl_options, [{cacertfile,"D:\RabbitMQData\SSL\ca.pem"},
{certfile,"D:\RabbitMQData\SSL\server_certificate.pem"},
{keyfile,"D:\RabbitMQData\SSL\server_key.pem"},
{verify, verify_peer},
{fail_if_no_peer_cert, true}
]},
{user_bind_pattern, ""},
{user_dn_pattern, ""},
{dn_lookup_attribute, "sAMAccountName"},
{dn_lookup_base, "DC=domain,DC=local"},
{group_lookup_base,"OU=Groups,DC=domain,DC=local"},
{vhost_access_query, {in_group, "cn=RabbitUsers,OU=Groups,DC=domain,DC=local"}},
{tag_queries, [
{administrator, {in_group, "CN=RabbitAdmins,OU=Groups,DC=domain,DC=local"}},
{management, {in_group, "CN=RabbitAdmins,OU=Groups,DC=domain,DC=local"}}
]}
]}
].
我正在使用 auth_ldap.log = network
,所以我的日志目录中应该有一个 ldap_auth.log 文件可以帮助我排除故障,但它不存在。为什么会出现这种情况?除了 .log 之外,我还没有看到 auth_ldap 日志记录的任何记录设置,所以我假设它会与其他日志一起使用。
我目前 运行 遇到 LDAP 问题,特别是错误 LDAP bind error: "xxxx" anonymous_auth
。因为我通过 auth_ldap.dn_lookup_bind = as_user
使用简单绑定,所以我不应该获得匿名身份验证。但是,如果没有详细的日志,我无法获得更多信息。
好吧,看来我在这里犯了两个错误:
回过头来重新阅读,看来我误解了文档并认为
auth_ldap.log
是一个单独的文件,而不仅仅是一个设置。所有 LDAP 日志记录都进入正常的 RabbitMQ 日志。我从 https://groups.google.com/g/rabbitmq-users/c/Dby1OWQKLs8/discussion 中提取了 Luke Bakken 的配置,但以下几行最终为:
{user_bind_pattern, ""},
{user_dn_pattern, ""}
而不是
{user_bind_pattern, "${username}"},
{user_dn_pattern, "${ad_user}"},
我曾使用带有 herestring 的 Powershell 脚本来创建配置文件,该文件错误地将这些变量解释为空字符串。解决这个问题让我可以使用“domain\username”登录。