解决 macOS 服务器中描述文件管理器的相关问题

了解如果描述文件管理器无法正常工作,该如何查明并解决问题。

如果你无法访问管理页面

描述文件管理器的基本设置位于“Server”App 中。你必须使用 Safari 浏览器来访问描述文件管理器的“/mydevices”网页和管理网页。

只有服务器管理员才能访问管理页面。管理页面的 URL 格式如下:

  • https://your_server's_fully_qualified_domain_name/profilemanager

    • 例如:https://www.example.com/profilemanager

要注册 iPhone、iPad、iPod touch 或 Mac,请转到:

  • https://your_server's_fully_qualified_domain_name/mydevices

    • 例如:https://www.example.com/mydevices

如果你无法使用 Safari 浏览器以外的网页浏览器来访问管理页面,请尝试使用 Safari 浏览器。如果你无法使用 Safari 浏览器访问管理页面,请检查你的 DNS 服务器。在你管理描述文件管理器部署时,DNS 设置非常重要。如果描述文件管理器未打开,请确保你的服务器指向可靠的 DNS 服务器。

如果你无法将描述文件或 App 推送到客户端

如果你在向客户端系统推送描述文件或 App 时遇到问题,请在“控制台”中检查系统日志文件。如果日志文件报告你的服务器无法连接到 Apple 的 APNS确保需要的所有端口均处于打开状态。

如需获取更多信息,请通过以下“终端”命令打开 APNS 调试日志记录:

sudo defaults write /Library/Preferences/com.apple.apsd APSWriteLogs -bool TRUE

sudo defaults write /Library/Preferences/com.apple.apsd APSLogLevel -int 7

sudo killall apsd

你可以在“控制台”App 中通过筛选 com.apple.apsd 和 com.apple.apspd 子系统来查看日志。

记录 APNS 事务后,请使用以下“终端”命令来关闭调试日志记录:

sudo defaults write /Library/Preferences/com.apple.apsd APSWriteLogs -bool FALSE

sudo defaults delete /Library/Preferences/com.apple.apsd APSLogLevel

sudo killall apsd

如果描述文件管理器出现其他问题

描述文件管理器日志可协助你解决描述文件管理器相关问题。你可以在“/var/log”找到名为“devicemgr”的符号链接。这个文件指向“/资源库/Logs/ProfileManager”,你可以在其中找到以下日志:

AuditLogs

  • 这个目录中的文件在相应服务日志中提供 CSV 格式的请求和响应日志记录,例如发送到设备的所有命令,或者特定用户发起的所有操作。在每个文件中,每列都有相应标题来描述记录的数据。

devicemgrd.log

  • 提供查询以及同步 Open Directory 和 Active Directory 用户及群组的状态。

  • 报告在由 devicemgrd 执行的查询中发生的错误。

  • 显示与发送推送通知相关的条目。

  • 显示与 DEP 和 VPP 事务相关的条目。

dmAuthService.log

  • 记录基于网页的用户认证尝试的状态。

dmDeviceService.log

  • 记录描述文件管理器与它管理的设备之间的交互。

dmhttpd.log

  • 记录有关描述文件管理器服务的请求和响应的概要 HTTP 数据。

dmPortalService.log

  • 记录来自“/mydevices”用户门户的请求和错误。

dmSCEPService.log

  • 记录 SCEP 服务(在设备注册期间使用)的相关请求和错误

dmWebAdminService.log

  • 记录使用“/profilemanager”网页管理期间出现的请求和错误。

dm_helper.log

  • 记录与来自 macOS 网络用户的 MDM 相关用户认证有关的信息。

dmrunnerd.log

  • 显示开始和停止支持描述文件管理器网页(“/profilemanager”和“/mydevices”)的受管理 Ruby 进程操作的状态。这个日志有时是空的。

migration_tool.log

  • 显示从上一 Server.app 版本迁移操作的状态和详情。

php-fpm.log

  • 显示开始和停止单个 php-fpm 帮助程序进程操作的状态。

php-fpm.devicemgr.log

  • PHP 相关问题会记录在这个文件中。

PostgreSQL-

  • 记录针对描述文件管理器的 PostgreSQL 数据库进行的并且导致错误的任何查询。

  • 它还会记录用于更改数据库架构的命令。

servermgr_devicemgr.log

  • 记录描述文件管理器服务的开始和停止情况。

以下日志可提供与网页服务器有关的有用信息:

  • /var/log/apache2/service_proxy_error.log

以下“终端”命令可为你提供额外的信息:

sudo log show --info --debug --predicate "(eventMessage contains[cd] 'devicemgr') or (category contains[cd] 'HTTPServer')"

关于事务“失败”

上述的部分日志可能会列出事务“失败”或重试事件。这些条目大部分是正常的,并不表示出现问题。这些记录的事件是同时尝试修改基础 PostgreSQL 数据库时出现的冲突。若出现这类失败,将进行重试,直到成功。

如果你在日志文件中看到以下任一注释,则可以确定存在事务冲突:

  • Canceled on conflict out to pivot(在出现数据透视冲突时取消)

  • could not serialize access due to concurrent update(由于并发更新,无法实现访问序列化)

  • @@@ Retry #X(@@@ 重试 #X)

  • @@@ Retry X(@@@ 重试 X)

查看 apspd CFPrefs 文件

前往 /资源库/Preferences/ApplePushServiceProvider,选择 com.apple.apspd.plist,然后选取“文件”>“显示简介”。如果文件大于 5KB,请移除文件,并使用以下终端命令重新启动 apspd 进程:

sudo killall apspd

使用详细日志记录查找更多信息

如果你提高日志记录级别,则有时会获得有关如何解决问题的更多信息。要收集所需的信息,请在提高日志级别后重现问题。

完成后,复原至原始的日志记录级别。如果你将日志记录级别保持在较高的设置,则会减少启动驱动器上的可用空间。

打开详细日志记录

要提高日志记录级别,请使用以下“终端”命令:

sudo debugDeviceMgr 4

这将自动重新启动描述文件管理器服务。

关闭详细日志记录

要将日志记录级别复原至原始设置,请使用以下“终端”命令:

sudo debugDeviceMgr 1

这将自动重新启动描述文件管理器服务。

进一步了解

发布日期: