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 서버 확인하기

프로파일 관리에는 로컬이나 또는 다른 서버에서 사용할 수 있는 Open Directory 또는 Active Directory가 필요합니다. 이러한 서비스를 설정할 때 DNS 설정이 중요합니다. 프로파일 관리가 열리지 않는 경우 서버에서 신뢰할 수 있는 DNS 서버를 참조하고 있는지 확인합니다. 서버에서 자체적으로 확인할 수 있도록 Server 앱을 사용하여 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

로그 파일은 /라이브러리/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'이라는 심볼릭 링크를 찾을 수 있습니다. 이 파일은 /라이브러리/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

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

게시일: