システムマネージャーのトラブルシューティング、ログ取得
このドキュメントではシステムマネージャー上の一般的な事象・問題に対応するための基本的なトラブルシューティング手法について説明しています。
また、より複雑な事象・問題が発生した際に役立つツールも紹介しています。
初めに
システムマネージャーで問題が発生した場合、通常、最初のステップは、問題が発生しているデバイスを確認することです。 デバイスページに表示されているログに問題が表示され、対応方法を確認できることがあります。
ダッシュボード上で確認できるログ
システムマネージャー > デバイスで対象のデバイスをクリックし、”デバイスの詳細ページ" を確認します。ここでは主に以下のようなデータやログを確認できます。
一部データの取得にはシステムマネージャーアプリ/エージェントのインストールが必要です。
|
|
|
|
|
クライアント側のログ
ダッシュボード側でのログ取得で調査が進展しなかった場合、デバイスに保存されているローカルなログを確認します。
このログの大部分は一時的にしか利用できないので、事象を再現する、あるいは発生する前にログの取得を開始することが推奨されます。これらのログをキャプチャしたら、すぐに保存/エクスポートするようにしてください。
iOS
デバイス側のログは、トラブルシューティングの際にデバイスのローカルな挙動を把握するのに非常に有効です。収集できるログには、console logと完全な sysdiagnose log の 2 種類があります。
ログの取得中は常に事象/動作を再現するようにしてください。 可能であれば、事象や動作が発生したタイムスタンプを記録し、Meraki Support にログを提出するときにこの情報を追記してください。
Apple Configurator を使用したログ取得 (console log)
macOS のApple Configurator を使って、iOS デバイスのconsole log を取得する方法を説明します。 iOS デバイスのログはトラブルシューティングに非常に有効で、技術的な場面で確認が必要になることがあります。
1. macOS デバイスに Apple Configurator 2 をインストールし起動します
2. 調査対象の iOS デバイスを USB ケーブルを使用して Apple Configurator 2 を起動している mac OS デバイスに接続する。このとき iOS デバイス側で ポップアップが表示された場合は”信頼”をタップします
3. Apple Configurator が自動的に接続された iOS デバイスを検知し、表示します。調査対象のデバイスをダブルクリックすします
4. 左側のサイドバー内にある”コンソール”をクリックします
5. この段階で iOS デバイス上で事象を再現させます。発生中のイベント等がログファイルに保存されます。
6. 事象再現中のログを取得後、右下の保存をクリックするとファイルとして内容を確認することができるようになります。
このログファイル内では以下の一般的な MDM プロセスについて確認します。
- mdmd (iOS のMDMデーモン)
- Meraki MDM (システムマネージャーアプリのプロセス)
- profiled (プロファイルのインストールや管理を司るデーモン)
Sysdiagnose log
Sysdiagnoseは、さらに詳細な情報が含まれるログで、より複雑なトラブルシューティングに有用です。 Apple は、このログ取得をすべての Apple 開発者に対して開放しています。無料または有料の Apple Developer アカウントを作成した後、sysdiagnose (Unredacted) ツールを使用して、macOS と Windows デバイスの両方を使用してこれらのログを収集するか、あるいは iOS デバイス自体から直接取得することが可能です。
iOS/iPad OS で sysdiagnose log を取得する方法は以下のとおりです。
- 「設定 -> アクセシビリティ -> タッチ -> Assistive touch」に移動し、有効にします
- 同じページで、「最上位メニューのカスタマイズ」をクリックします
- " - " ボタンをタップしてアイコンを 1 つだけ表示させます
- 残ったアイコンをタップして "解析”を選択します
- この状態で事象を再現させます
- その後フローティングメニューボタンをタップすると解析中であることを示すバナーが表示されます
- 分析によるデータの収集が完了すると、別のバナーが表示されます (ログが収集が完了するまで 2 ~ 5 分ほどかかることがあります)
- 設定 > プライバシー > 解析と改善 > 解析データをタップします
- 解析データの中から "sysdiagnose" で始まるデータ(例 : sysdiagnose_2021.08.11_22-44-09-0700_iPhone-OS_iPad_19A5281jを探します
- 右上の共有ボタンからファイルとして保存したり、Airdrop などでデータを取り出します
- 出力されたファイルをサポートへご提供ください。データサイズが大きい場合にはサポートにて別途アップロード先をご案内することがあります
Android
1. 開発者向けオプションとUSBデバッグを有効にする
メーカーによって手順が異なる場合がありますので事前にご確認ください。(以下は Pixel5/Android12 における手順です)
- 設定 > デバイス情報 をタップし、 "ビルド番号" を 7 回連続でタップします
- 設定に戻り、システム > 開発者向けオプションをタップします
- 開発者向けオプションの使用を有効にし”USBデバッグ”を有効にします
USB デバッグログの取得
一部の手順はOSやデバイスのメーカーによって異なる場合があります。取得したログファイル内で "fatal exception" で検索すると調査に有用な情報が確認できます。
以下のプロセスは、コンピュータメーカー、エンドデバイスメーカー、およびAndroid Studio / ADBのバージョンによって異なる場合があります。これはガイドとして使用することを意図していますが、特定のバリエーションが存在する可能性があり、デバイスメーカーからのサポートが必要になる場合があります。以下のいずれの方法でも認識されない場合は、以下の項目を確認することをお勧めします。
- USB デバッグが有効になっていること
- 別の USB ケーブルで接続する。特にサムスン製デバイスの場合メーカー製のUSBケーブルもお試しください。)
- PC の他のUSB ポートに接続する(USB バージョンによって動作が異なる場合があるため)
- Android Studio/ADB が最新版であること
- デバイスの USB ドライバーが最新版であること
Android Studio で取得
コマンドラインツールの使い方が不明な場合、Android Studio の Logcat を使用してソフトウェア上でログを取得することができます。
- Android Studio をインストールします
- インストール後 Android Studio を起動します
- "New Project" をクリックして新規プロジェクトを作成します
- 次の画面で "No Activity" を選択し Next をクリックします
- 任意のプロジェクト名を設定し、"Finish" をクリックします(そのまま Finish でも可)
- PC に調査対象の Android デバイスを USB 接続し、Android Studio 上に表示されたことを確認します
- 画面左下にある "Logcat" をクリックします
- Logcat ペインに表示されたログをすべてコピーしてテキストファイル等に貼り付けて保存します
※あるいはこちらのドキュメントを参照して保存してください
ADB で取得 (コマンドラインツール)
- Android SDK をインストールします
- Android Studio をインストールすると自動的に ADB もインストールされます
- Android Studio が不要の場合こちらからインストールできます
- コマンドプロンプトや、ターミナルから、"platform-tools" フォルダ(ディレクトリ)まで移動します
- デフォルトでは以下に存在しています
- Windows: C:\Users\[username]\AppData\Local\Android\sdk\platform-tools
- macOS: ~/Library/Android/sdk/platform-tools
- Android Enterprise 関連のログを出力するいは、フォルダ内の "adb" を以下の引数、オプションとともに実行します
- Windows: C:\Users\[username]\AppData\Local\Android\sdk\platform-tools> adb logcat -G 32M; adb shell setprop persist.log.tag.dpcsupport VERBOSE; adb shell setprop persist.log.tag.Finsky VERBOSE; adb shell setprop persist.log.tag.Auth VERBOSE; adb shell setprop persist.log.tag.PackageManager VERBOSE; adb shell setprop persist.log.tag.JobScheduler VERBOSE
- macOS: $ ./adb logcat -G 32M; adb shell setprop persist.log.tag.dpcsupport VERBOSE; adb shell setprop persist.log.tag.Finsky VERBOSE; adb shell setprop persist.log.tag.Auth VERBOSE; adb shell setprop persist.log.tag.PackageManager VERBOSE; adb shell setprop persist.log.tag.JobScheduler VERBOSE
出力された内容を保存するには -f ファイル名 をコマンドに追加するか、adb logcat [commands] > ./androidlogs.log のようにパイプにより保存してください
macOS
システムマネージャーエージェントのログは、/var/log/m_agent.log ファイルに格納されています。
Console Logは、システムイベント、ダイアログテキスト、エラー、ステータス、およびその他の通信を扱います。 MacOSでこれらのログを収集するには、「コンソール」アプリケーション(/System/Applications/Utilities/Console.app)を使用します。"start" をクリックしてログの収集を開始し、問題を再現した後、"pause" をクリックしてログ取得を停止します。
デバイスから既存のログを収集するには、sysdiagnoseコマンドを実行する必要があります。
sudo sysdiagnose
sysdiagnose の実行が終了すると、Finder ウィンドウが開き、ログファイルの場所(/private/var/tmp/)が表示されます。このアーカイブファイルを展開すると、コンソールアプリケーションで開くことができるシステムログファイル "system_logs.logarchive" を含む、いくつかのファイルが現れます。
メッセージの主な内容は以下の通りです。
mdmclient: macOS上のMDM管理デーモン
検索バーに「mdmclient」と入力し、検索方法として「プロセス」を選択することで、ログファイルに対してフィルタリングを行うことができます。
Windows
システムマネージャーエージェントのログは、C:\Windows\magent_service.logに記録されます。
システムログは、イベントビューアのWindows Logs/Application and Services/Microsoft/Windows/DeviceManagement-Enterprise-Diagnostics-Provider/Admin に表示されます。
ログからトラブルシューティングを実施
以下の表は一般的に表示されることがあるエラーメッセージを OS 別にまとめたものです。
OS(s) |
エラーコード |
エラー本文 | 原因/理由 | 対応策 | 注意事項 |
iOS/MacOS | Profile Installation Failed: An SSL Error has occurred and a secure connection to the server cannot be made. | プロキシー等がプロファイルペイロードを含んだトラフィックを制限しています | クライアントをトラフィック制御の対象から外す | ||
iOS | 1000 |
Domain: MCProfileErrorDomain |
ほとんどの場合、デバイスに割り当てられたオーナーが ASM グループのメンバーでないことが原因です。 |
ユーザー/オーナーを正しい ASM グループに割り当てる | |
iOS | 1006 | Profile could not be decrypted | デバイスは暗号化されたペイロードを受け取れたものの、復号できません |
DEP 設定を削除する デバイスを初期化する iOS をアップデートする デバイスを DEP に再登録する |
|
iOS | 2003 | Domain: MCPayloadErrorDomain The field “UserName” is invalid. | インストールした WiFi プロファイルで EAP 認証に必要な情報が不足しています | WiFi プロファイル内のEAP 設定でユーザー名とパスワードが入力されていることを確認する | こちらは iOS9 以降の監視モードデバイスが対象です |
iOS | 4001 | Domain: MCInstallation Error | プロファイルのインストールに失敗した際に一般的に表示されるエラー | プロファイル内の問題と思われる設定を削除する | このエラーは、一般にプロファイルをクライアントにインストールできない場合に発生しますが、それ以外の場合、より具体的なエラーメッセージはありません。 この例には、パスコードの変更が許可されていない状態でパスコードのペイロードをプッシュすることや、監視対象の設定を非監視対象のデバイスにプッシュすることなどが含まれます。 |
iOS | 12021 | Domain:* MCMDMErrorDomain“ScheduleOSUpdate” is not a valid request type. | デバイスが DEP に登録されていないため、OSアップデートコマンドが実行できません | デバイスを DEP に登録し、監視モードにする | |
iOS | 12023 | Domain:* MCMDMErrorDomain“ The iTunes Store ID of the application could not be validated. |
”利用可能なアプリライセンスがない”ことを示す一般的なエラーメッセージです。主な原因は以下のとおりです。
|
|
|
iOS | 12026 | Domain:* MCMDMErrorDomain“ The app “com.generic.app” is already scheduled for management. | このアプリはすでにクライアントのインストールキューに入っています。 一般的に、このエラーは無視しても問題ありません。 | インストールされるまで待機する | アプリがインストールされない場合、installdプロセスからのメッセージを探します。 |
iOS | 12064 | Domain: MCMDMErrorDomain License for app "X” could not be found. | デバイスでアプリライセンスが利用不可能 | 対象のアプリのインストール対象から一旦外して、再度追加する | このメッセージは、VPP でデバイス割り当てで設定している場合にのみ表示されます。 |
iOS, MacOS | 'Error - Activation Lock Bypass code not found with Apple. Is activation lock already disabled?' | アクティベーションロックバイパス のコマンドが Apple サーバー側で既に認識されている |
デバイスを再起動し、WiFi へ接続して 10 秒待機する。 その後セットアップアシスタント再実行する |
この手順がうまくいかない場合は、Appleに連絡してアクティベーションロックの解除を依頼してください。 | |
iOS | Error - License for app "com.generic.app" could not be found |
|
|
||
MacOS/Windows Agent | curl error 5 |
プロキシを解決できませんでした。指定されたプロキシホストを解決できない 通常、これは上流で接続が拒否されていることを意味します。 |
ダッシュボード宛の TCP 993 の通信を開放する | このエラーは、ダッシュボードの残りのライセンスがないことを意味する場合もありますので、ダッシュボードのライセンス制限に達していないかどうか確認してください。 | |
MacOS/Windows Agent | curl error 6 |
ホストを解決できませんでした。指定されたリモートホストは解決されない 通常、これはトラフィックを操作しようとしているデバイスが存在することを示します(SSL Intercept Proxyなど)。 |
デバイスあるいはトラフィックを開放する(デバイス上で) | TCP993はIMAPSポートでもあるため、データストリームを操作しているデバイスを探す場合は、メールフィルタリングシステムやローカルアンチウイルスシステムも確認することが重要です。 | |
MacOS/Windows Agent | curl error 7 or curl error 60 | デバイスが https://cf.meraki.com にアクセスして設定を取得しようとしているときに表示されます。 | 左記 URL に対するHTTPS 通信を許可する |