macOS Server에서 프로파일 관리 문제 해결하기

프로파일 관리가 정상적으로 작동하지 않는 경우 문제를 찾아 해결하는 방법을 알아봅니다.

관리 페이지에 접근할 수 없는 경우

프로파일 관리의 기본 설정은 Server 앱에 있습니다. 프로파일 관리의 /mydevices 웹 페이지 및 관리 웹 페이지에 접근하려면 Safari를 사용해야 합니다.

서버 관리자만 관리 페이지에 접근할 수 있습니다. 관리 페이지의 URL 형식은 다음과 같습니다.

  • https://[서버의_정규화된_도메인_이름]/profilemanager
    예: https://www.example.com/profilemanager

iPhone, iPad, iPod touch 또는 Mac을 등록하려면 다음 위치로 이동합니다.

  • https://[서버의_정규화된_도메인_이름]/mydevices
    예: https://www.example.com/mydevices

Safari 이외의 웹 브라우저로 관리 페이지에 접근할 수 없으면 Safari로 접근해 봅니다. Safari로 접근할 수 없는 경우 DNS 서버를 확인합니다. DNS 설정은 프로파일 관리 배포를 관리할 때 중요합니다. 프로파일 관리가 열리지 않는 경우 서버에서 신뢰할 수 있는 DNS 서버를 참조하고 있는지 확인합니다.

프로파일 또는 앱을 클라이언트에 푸시할 수 없는 경우

프로파일이나 앱을 클라이언트 시스템에 푸시할 때 문제가 발생하면 콘솔에서 시스템 로그 파일을 확인합니다. 시스템 로그 파일에 서버가 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 하위 시스템을 필터링하여 콘솔 앱에서 로그를 볼 수 있습니다.

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-<yyyy-mm-dd>.log
  • 오류가 발생한 프로파일 관리의 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 파일 확인하기

/라이브러리/Preferences/ApplePushServiceProvider로 이동하여 com.apple.apspd.plist를 선택한 다음 파일 > 정보 가져오기를 선택합니다. 파일이 5KB보다 크면 파일을 제거하고 다음 터미널 명령을 사용하여 apspd 프로세스를 다시 시작합니다.

sudo killall apspd

상세 로그 기록을 사용하여 자세한 정보 확인하기

로그 단계를 높이면 문제 해결 방법에 대한 더 많은 정보를 얻을 수 있는 경우도 있습니다. 필요한 정보를 수집하려면 로그 기록 단계를 높인 후 문제를 재현합니다.

작업을 마쳤으면 원래 로그 기록 단계로 되돌립니다. 로그 기록 단계를 높게 설정한 상태로 두면 시동 드라이브에서 사용 가능한 공간이 줄어듭니다.

상세 로그 기록 켜기

로그 기록 단계를 높이려면 다음 터미널 명령을 사용합니다.

sudo debugDeviceMgr 4

이 명령을 실행하면 프로파일 관리 서비스가 자동으로 다시 시작됩니다.

상세 로그 기록 끄기

로그 기록 단계를 원래 설정으로 되돌리려면 다음 터미널 명령을 사용합니다.

sudo debugDeviceMgr 1

이 명령을 실행하면 프로파일 관리 서비스가 자동으로 다시 시작됩니다.

게시일: