Red Hat Training

A Red Hat training course is available for RHEL 8

8.9. 从 SSSD 服务收集调试日志,以对 IdM 客户端的身份验证问题进行故障排除

如果您在尝试以 IdM 用户身份向 IdM 客户端进行身份验证时遇到问题,请验证您是否可以检索有关 IdM 服务器的用户信息。如果您无法检索有关 IdM 服务器的用户信息,您将无法在 IdM 客户端上检索它(从 IdM 服务器检索信息)。

确认身份验证问题不源自 IdM 服务器后,从 IdM 服务器和 IdM 客户端收集 SSSD 调试日志。

先决条件

  • 用户仅在 IdM 客户端而不是 IdM 服务器中存在身份验证问题。
  • 您需要 root 密码来运行 sssctl 命令并重新启动 SSSD 服务。

流程

  1. 在客户端上: 在文本编辑器中打开 /etc/sssd/sssd.conf 文件。
  2. 在客户端:ipa_server 选项添加到文件的 [domain] 部分,并将其设置为 IdM 服务器。这可避免 IdM 客户端自动发现其他 IdM 服务器,从而将此测试限制为一个客户端和一个服务器。

    [domain/example.com]
    ipa_server = server.example.com
    ...
  3. 在客户端上: 保存并关闭 sssd.conf 文件。
  4. 在客户端上:重启 SSSD 服务以加载配置更改。

    [root@client ~]# systemctl restart sssd
  5. 在服务器和客户端上:启用详细的 SSSD 调试日志。

    [root@server ~]# sssctl debug-level 6
    [root@client ~]# sssctl debug-level 6
  6. 在服务器和客户端中:为遇到身份验证问题的用户验证 SSSD 缓存中的对象,因此您不用绕过 LDAP 数据库,并检索 SSSD 信息已经缓存。

    [root@server ~]# sssctl cache-expire -u idmuser
    [root@client ~]# sssctl cache-expire -u idmuser
  7. 在服务器和客户端上:通过删除旧的 SSSD 日志来最小化 dataset 故障排除。

    [root@server ~]# sssctl logs-remove
    [root@server ~]# sssctl logs-remove
  8. 在客户端上:尝试切换至遇到身份验证问题的用户,同时在尝试前后收集时间戳。这些时间戳进一步缩小了数据集的范围。

    [root@client sssd]# date; su idmuser; date
    Mon Mar 29 16:20:13 EDT 2021
    su: user idmuser does not exist
    Mon Mar 29 16:20:14 EDT 2021
  9. (可选)在服务器和客户端上:如果您不想继续收集详细的 SSSD 日志,请降低 debug 级别。

    [root@server ~]# sssctl debug-level 0
    [root@client ~]# sssctl debug-level 0
  10. 服务器和客户端:查看 SSSD 日志以获取有关失败请求的信息。

    1. 在客户端日志中查看来自客户端的请求。
    2. 在服务器日志中查看来自客户端的请求。
    3. 在服务器日志中检查请求的结果。
    4. 查看客户端收到来自服务器的请求结果的结果。
  11. 如果您无法确定导致身份验证问题的原因:

    1. 收集您最近在 IdM 服务器和 IdM 客户端中生成的 SSSD 日志。根据主机名或角色标记它们。

      [root@server ~]# sssctl logs-fetch sssd-logs-server-Mar29.tar
      [root@client ~]# sssctl logs-fetch sssd-logs-client-Mar29.tar
    2. 创建一个红帽技术支持问题单并提供:

      1. SSSD 调试日志:

        1. 来自服务器的 sssd-logs-server-Mar29.tar
        2. 来自客户端的 sssd-logs-client-Mar29.tar
      2. 与日志对应的请求的控制台输出,包括时间戳和用户名:

        [root@client sssd]# date; su idmuser; date
        Mon Mar 29 16:20:13 EDT 2021
        su: user idmuser does not exist
        Mon Mar 29 16:20:14 EDT 2021