Windows Azureデバッギング – VM上のリソース
Windows Azureアプリケーションのデバッグを通して、Azureプラットフォームでのデバッグテクニックを蓄積しました。Windows Azureのトラブルシュートの為に使用している情報の多くを共有するためのBlogシリーズを投稿する予定です。
シリーズの最初は、Azure VMにリモートデスクトップで接続し、確認することができるリソースを紹介したいと思います。
VM上のリソース
問題の解決の為に重要なことの一つは、環境全体と提供されているリソースとログファイルについて理解することです。
Cドライブは設定情報とローカルストレージを格納します。
Dドライブは、WindowsとWaAppAgentログを格納します。
Eドライブは、顧客のロールコードを格納します。
Cドライブ:ログファイル、ローカルストレージフォルダー
デバッグ(例えば、WinDBG、ツール、ダンプファイル、ログファイルなど)している間、ローカルの一時領域としてCドライブを使用できます。すべてのトラブルシューティングツールが読み込むためにC:\Scratchを作成します。
- C:\Config サービス設定情報
- <DeploymentID>.<RoleName>.<index>.xml
これは、ユーザロール用メインの設定情報です。サービス設定ファイル(管理ポータルで設定を更新したり、更新を再配置など)を更新したら、複数のコピーされたXMLファイルが格納され、<index>カウンターは、新しい設定バージョンが1つ追加されます。- デプロイ名
- サービス名
- 証明書
- ホストプロセス
- cscfg設定と値
- ローカルストレージフォルダー
- InputEndpoint、InternalEndpoinとポートのマッピング
- <GUID>.ccf
- OSバージョン
- クラスター名
- デプロイID
- VMサイズ(<ProcessorCount>を探してください)
- ipconfig情報
- <DeploymentID>.<RoleName>.<index>.xml
- C:Resources ローカルストレージ、ログファイル、AspNetTemp
- ディレクトリ\<GUID>.<RoleName>.DiagnosticStore – IISログ、失敗したリクエスト(freb)ログ
- ディレクトリ\<guid>.<role>.DiagnosticStore\Monitor\Tables – Azure 診断モニターが収集したすべての調査情報(イベントログ、ロールログ、WAD調査情報など)。table2csv.exeを使用して.tsfファイルを収集する方法は、Getting Azure Diagnostic Information from a VMを参照してください。
- Temp\<GUID>.<RoleName>\RoleTemp – ホストプロセスログ
- Directory\<GUID>.<RoleName>.<LocalStorage name> – サービスモデル(.csdef)で定義されている<LocalStorage>フォルダーです。
Dドライブ:Windows(%SystemDrive%、%SystemRoot%など)、エージェントログ
- D:\Packages\GuestAgent – エージェントログ
- このロケーションからWaAppAgent.exeが開始されます。
- WaAppAgent.exe.log – インスタンスのスタートアップ詳細を記録するエージェントログファイル
- WaAppAgent.<index>.log – 履歴ログファイル
Eドライブ:サービスパッケージを含む仮想ドライブ
ゲストエージェントがサービスパッケージを配置したとき、このドライブが作成されます。これは動的に生成され、落ち着くまでFドライブ、Gドライブとなります。
- _entrypoint.txt – ホストプロセスが呼び出すエントリポイントを含むDLL
- RoleModel.xml – <Startup>タスクと<Sites>設定エレメントを含むXMLファイルです。また、MSBuild情報とターゲット.NET Frameworkのバージョンを含みます。
- <GUID>.csman – PackageManifestは、パッケージのすべてのファイル一覧(Visual Studioにコピー&ペーストできる形式)を記録しています。
- \Base\x64 – サービスコードで動作するホストプロセス
- \Approot – 顧客のコード、aspxページ、DLLなど
- \Sitesroot\<index> – Full IISサイトの動作起点のフォルダーです。
ロールがデプロイされたとき、\Approot から、この\Sitesroot へファイルがコピーされ、IISは、\Sitesrootから動作するように設定されます。一時的なテストの為に、ロールを変更する(web.configの変更、新しいDLLなど)場合には、ここを置き換えなければなりません。