解決 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

你可以透過篩選 com.apple.apsd 和 com.apple.apspd 子系統來檢視「系統監視程式」app 中的記錄。

在系統記錄 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」的符號連結。此檔案指向 /Library/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

  • @@@ Retry X

檢查 apspd CFPrefs 檔案

前往 /Library/Preferences/ApplePushServiceProvider,選擇 com.apple.apspd.plist,然後選擇「檔案」>「取得資料」。如果檔案大於 5KB,請移除檔案並使用以下終端機指令重新開始 apspd 程序:

sudo killall apspd

使用詳盡記錄尋找更多資料

如果提高記錄級別,有時可取得更多有關修正問題方式的資料。如要收集所需資料,請在提高記錄級別後重現問題。

完成後,請復原記錄級別。保留較高的記錄級別可能會減少啟動磁碟的可用空間。

開啟詳盡記錄

如要提高記錄級別,請使用以下終端機指令:

sudo debugDeviceMgr 4

這會自動重新啟動「描述檔管理程式」服務。

關閉詳盡記錄

如要復原記錄級別的設定,請使用以下終端機指令:

sudo debugDeviceMgr 1

這會自動重新啟動「描述檔管理程式」服務。

更多內容

發佈日期: