解決 macOS 伺服器的「描述檔管理程式」問題

了解「描述檔管理程式」無法如期運作時,該如何找出和修正問題。

如果無法取用管理頁面

你可以在 Server app 中找到「描述檔管理程式」的基本設定。你必須使用 Safari 才能取用「描述檔管理程式」的 /mydevices 網頁和管理網頁。

只有伺服器管理員才可以取用你的管理頁面。管理頁面的 URL 格式如下:

  • https://你伺服器的完整網域名稱/profilemanager
    範例:https://www.example.com/profilemanager

如要登記 iPhone、iPad、iPod touch 或 Mac,請前往:

  • https://你伺服器的完整網域名稱/mydevices
    範例:https://www.example.com/mydevices

如果 Safari 以外的網頁瀏覽器無法取用管理頁面,請試用 Safari。如果 Safari 也無法取用,請嘗試其他步驟。

檢查 DNS 伺服器

「描述檔管理程式」需要可以用於本機或其他伺服器的 Open Directory 或 Active Directory。設定這些服務時,DNS 設定很重要。因此,無法開啟「描述檔管理程式」時,請確定伺服器指向可靠的 DNS 伺服器。你也可以使用 Server app 設定 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

你可以在 /Library/Logs/apsd.log 找到記錄檔案。 

在系統記錄 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,當中包括以下記錄:

devicemgrd.log
  • 提供 Open Directory 和 Active Directory 用戶和群組的查詢和同步狀態。
  • 報告 devicemgrd 執行查詢時發生的錯誤。
  • 顯示傳送推送通知的相關項目。
  • 顯示 DEP 和 VPP 交易的相關項目。
dm_helper.log
  • 記錄有關 macOS 網絡用戶的 MDM 相關用戶認證的資料。
dmrunnerd.log
  • 顯示支援「描述檔管理程式」網頁 (/profilemanager 和 /mydevices) 的受管理 ruby 程序的啟動和停止狀態。此記錄有時會空白。
migration_tool.log
  • 顯示從舊版 Server.app 轉移的狀態和詳細資料。 

php.log

  • 列出由「描述檔管理程式」管理的裝置的 IP 地址。如果你的裝置在「網絡地址轉譯」(NAT) 後,這裡列出的 IP 地址就未必相符。
  • 顯示傳送到裝置的 MDM 指令的互動情況及回應。
  • 列出嘗試安裝描述檔的次數及已傳送至裝置的所有指令。

php-fpm.log

  • 顯示個別 php-fpm 輔助程式程序的開始和停止狀態。

php-fpm.devicemgr.log

  • PHP 的問題會記錄到這個檔案。
PostgreSQL-<yyyy-mm-dd>.log
  • 記錄導致「描述檔管理程式」的 PostgreSQL 資料庫發生錯誤的任何查詢。
  • 當中也會記錄變更資料庫綱要的指令。
profilemanager.log
  • 記錄在「描述檔管理程式」管理頁面中執行過的所有使用者互動。
  • 列出與「描述檔管理程式」網頁( /profilemanager 和 /mydevices) 的相關錯誤訊息。
  • 記錄受管理的 ruby 程序交易問題。
servermgr_devicemgr.log
  • 記錄「描述檔管理程式」服務的開始與停止。

以下記錄也可以提供實用的資料:

  • /var/log/apache2/service_proxy_error.log
  • /var/log/opendirectory.log
  • /var/log/system.log

在 macOS Sierra 和以上版本,部分資料會透過整合記錄儲存。以下終端機指令可以提供其他實用資料:

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

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

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

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

開啟詳盡記錄

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

sudo debugDeviceMgr 4

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

關閉詳盡記錄

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

sudo debugDeviceMgr 1

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

發佈日期: