Azure クラウド サービスと仮想マシンに対する診断を設定する

Note

この記事は Azure Cloud Services (クラシック) に適用されます。これは新規のお客様向けには非推奨となっており、2024 年 8 月 31 日に廃止されます。 このテクノロジを使用して構築された既存のサービスは、引き続き Azure Cloud Services (延長サポート) を通じてサポートされます。 新しい開発では、Azure App ServiceAzure FunctionsAzure Container Apps など、特定の目的に合わせて設計された新しいサービスの種類を使用することをお勧めします。 利用可能なサービスの最新の一覧については、「Azure 製品のディレクトリ」を参照してください。

Azure クラウド サービスまたは Azure 仮想マシンのトラブルシューティングを行うときは、Visual Studio を使用して Azure Diagnostics を簡単に構成できます。 診断は、クラウド サービスを実行する仮想マシンと仮想マシン インスタンスのシステム データとログ データを取り込みます。 診断データは、選択したストレージ アカウントに転送されます。 Azure での診断ログの詳細については、「Azure App Service の Web アプリの診断ログの有効化」を参照してください。

この記事では、Visual Studio を使用して、Azure Diagnostics を有効にして設定する方法を示します。診断は、デプロイの前と後のどちらでも有効にできます。 Azure Virtual Machines で診断を設定する方法、収集する診断情報の種類を選択する方法、および収集された情報を表示する方法についても取り上げます。

Azure Diagnostics を設定するには、次のオプションのいずれかを使用できます。

  • Visual Studio の [診断構成] ダイアログ ボックスで、診断設定を変更します。 設定は、diagnostics.wadcfgx という名前のファイルに保存されます。 構成ファイルを直接変更することもできます。 ファイルを直接更新した場合、構成の変更内容は、次回 Azure にクラウド サービスをデプロイしたとき、またはエミュレーターでサービスを実行したときに有効になります。

  • Visual Studio 2019 以前の Cloud Explorer またはサーバー エクスプローラーを使用して、実行中のクラウド サービスまたは仮想マシンの診断設定を変更します。

Azure Diagnostics を設定するには、Visual Studio の [診断構成] ダイアログ ボックスで、診断設定を変更します。 設定は、diagnostics.wadcfgx という名前のファイルに保存されます。 構成ファイルを直接変更することもできます。 ファイルを直接更新した場合、構成の変更内容は、次回 Azure にクラウド サービスをデプロイしたとき、またはエミュレーターでサービスを実行したときに有効になります。

警告

Visual Studio 2022 では、クラウド サービス プロジェクトのデバッグ時に非推奨の Azure Storage Emulator が Azurite エミュレーターに置き換えられました。 この Azurite エミュレーターは、Azure Diagnostics プラグインでは動作しません。これは、ローカルで実行およびテストするときに Azure Diagnostics をサポートするものです。 ローカルの実行とテストのシナリオにプラグインが必要な場合は、ローカル サービス構成 (.cscfg) の接続文字列を Azure Storage アカウントに更新するか (「ストレージ アカウントの接続文字列の管理」を参照)、または以前の Azure Storage エミュレーターをダウンロードしてください。 Visual Studio 17.10 リリースでは、ローカルの Azure Diagnostics プラグインは非推奨となり、そのリリースで有効にするオプションはありますが、既定では無効になります。 非推奨のため、このプラグインは Visual Studio の将来のリリースで削除される可能性があります。 このプラグインは、ローカルの Azure コンピューティング エミュレーターでのみ使用され、無効にしても、Azure の Azure Diagnostics 拡張機能を使用するデプロイ済みの Cloud Services には影響しません。 Visual Studio 17.10 で 診断プラグインを有効にするには、プロジェクト ファイル内の任意の PropertyGroup に次のプロパティ設定を追加します: <EnableEmulatorDiagnosticsPlugin>True</EnableEmulatorDiagnosticsPlugin>

使用する診断ストレージ アカウントを Visual Studio がどのように決定するか

  • 診断接続文字列が .cscfg ファイルに指定されている場合、Visual Studio は、発行時と、パッケージ化中のパブリック構成 XML ファイルの生成時に、.cscfg ファイルに指定されている診断接続文字列を使用して診断拡張機能を設定します。
  • 診断接続文字列が .cscfg ファイルに指定されていない場合、Visual Studio は、発行時と、パッケージ化中のパブリック構成 XML ファイルの生成時に、.wadcfgx ファイルに指定されているストレージ アカウントを使用して診断拡張機能を設定します。
  • .cscfg ファイルの診断接続文字列は、.wadcfgx ファイルのストレージ アカウントよりも優先されます。 診断接続文字列が .cscfg ファイルに指定されている場合、Visual Studio はその接続文字列を使用し、.wadcfgx のストレージ アカウントを無視します。

[...開発ストレージの接続文字列を...更新する] チェックボックスの機能

[Microsoft Azure への公開時に診断とキャッシュのための開発ストレージの接続文字列を Microsoft Azure Storage アカウントの資格情報で更新する] チェックボックスは、開発ストレージ アカウントの接続文字列を、発行時に指定した Azure Storage アカウントに更新する便利な方法です。

たとえば、このチェックボックスを選択し、診断接続文字列に UseDevelopmentStorage=true を指定した場合、プロジェクトを Azure に発行すると、Visual Studio によって、診断接続文字列が発行ウィザードで指定したストレージ アカウントに自動的に更新されます。 ただし、実際のストレージ アカウントが診断接続文字列として指定されている場合は、そのアカウントが使用されます。

クラウド サービス プロジェクトをデプロイする前に診断を有効にする

サービスをデプロイする前にエミュレーターで実行するとき、Azure で実行するロールの診断データを Visual Studio で収集できます。 Visual Studio で診断設定に対して行った変更はすべて、diagnostics.wadcfgx 構成ファイルに保存されます。 これらの設定で、クラウド サービスのデプロイ時に診断データが保存されるストレージ アカウントを指定します。

警告

既存のロールで診断を有効にすると、パッケージがデプロイされるときに、既に設定してあるすべての拡張機能が無効になります。 これには以下が含まれます。

  • Microsoft Monitoring Agent 診断
  • Microsoft Azure セキュリティ監視
  • Microsoft Antimalware
  • Microsoft 監視エージェント
  • Microsoft Service Profiler Agent
  • Microsoft Azure ドメイン拡張機能
  • Microsoft Azure Diagnostics 拡張機能
  • Microsoft Azure リモート デスクトップ拡張機能
  • Microsoft Azure Log Collector

更新したロールをデプロイした後、Azure Portal または PowerShell で拡張機能を再度設定できます。

デプロイ前に Visual Studio で診断を有効にするには

  1. ロールのショートカット メニューで [プロパティ] を選択します。 ロールの [プロパティ] ダイアログ ボックスで、[構成] タブを選択します。

  2. [診断] セクションで、[診断の有効化] チェックボックスがオンになっていることを確認します。

    [診断の有効化] オプションにアクセスする

  3. 診断データ用のストレージ アカウントを指定するには、省略記号 (...) ボタンを選択します。

    Specify the storage account to use

  4. Azure ストレージ エミュレーター、Azure サブスクリプション、手動で入力した資格情報のうち、どれを使って接続するかを [ストレージ接続文字列の作成] ダイアログ ボックスで指定します。

    Storage account dialog box

    • [Microsoft Azure ストレージ エミュレーター] を選択した場合、接続文字列は UseDevelopmentStorage=true に設定されます。
    • [サブスクリプション] オプションを選択した場合は、使用する Azure サブスクリプションを選択し、アカウント名を入力できます。 Azure サブスクリプションを管理するには、[アカウントの管理] を選択します。
    • [手動で入力された資格情報] オプションを選択した場合は、使用する Azure アカウントの名前とキーを入力します。
  5. [診断構成] ダイアログ ボックスを表示するには、[構成] を選択します。 [全般][ログ ディレクトリ] を除く各タブは、収集できる診断データのソースを表します。 既定の [全般] タブでは、診断データの収集オプションとして、[エラーのみ][すべての情報][カスタム プラン] を指定できます。 既定の [エラーのみ] オプションでは、警告またはトレース メッセージが転送されないため、必要とするストレージ容量が最小限で済みます。 [すべての情報] オプションは最も多くの情報を転送し、最も多くのストレージを使用するため、コストが最も高いオプションです。

    Note

    [ディスク クォータ (MB)] のサポートされる最小サイズは 50 MB で、既定のサイズは 4 GB です。 ただし、メモリ ダンプを収集する場合は、10 GB のような高い値に増やしてください。

    Azure Diagnostics の有効化と構成

  6. この例では、[カスタム プラン] オプションを選択して、収集するデータをカスタマイズできるようにします。

  7. [ディスク クォータ (MB)] ボックスに、ストレージ アカウントで診断データ用に割り当てる容量を設定できます。 既定の値を変更することも、そのまま使用することもできます。

  8. 収集する診断データに対応する各タブで、[<ログの種類>の転送を有効にする] チェックボックスを選択します。 たとえば、アプリケーション ログを収集する場合は、[アプリケーション ログ] タブで [アプリケーション ログの転送を有効にする] チェックボックスをオンにします。 それ以外にも、診断データの種類ごとに必要な情報があれば指定します。 各タブの構成情報については、この記事の後半にある「診断データのソースを構成する」セクションを参照してください。

  9. 目的の診断データの収集をすべて有効にしたら、[OK] を選択します。

  10. Visual Studio で Azure クラウド サービス プロジェクトを通常どおり実行します。 アプリケーションを使用すると、有効にしたログ情報が、指定した Azure Storage アカウントに保存されます。

Azure Virtual Machines の診断を有効にする

Azure Virtual Machines の診断データを Visual Studio で収集できます。

Azure Virtual Machines の診断を有効にするには

  1. サーバー エクスプローラーで [Azure] ノードを選択し、まだ接続していない場合は Azure サブスクリプションに接続します。

  2. [Virtual Machines] ノードを展開します。 新しい仮想マシンを作成するか、既存のノードを選択できます。

  3. 目的の仮想マシンのショートカット メニューで [構成] を選択します。 [仮想マシンの構成] ダイアログ ボックスが表示されます。

    Azure 仮想マシンを構成する

  4. ログ分析エージェント診断拡張機能がまだインストールされていない場合は追加します。 この拡張機能で、Azure 仮想マシンに関する診断データを収集することができます。 [インストールされている拡張機能] の下の [使用可能な拡張機能を選択してください] ドロップダウン リスト ボックスで、[Microsoft Monitoring Agent 診断] を選択します。

    Azure 仮想マシン拡張機能をインストールする

    注意

    他の診断拡張機能も仮想マシンで使用できます。 詳細については、「Windows 用の仮想マシン拡張機能とその機能」を参照してください。

  5. 拡張機能を追加してその [診断構成] ダイアログ ボックスを表示するには、[追加] を選択します。

  6. ストレージ アカウントを指定するには、[構成] を選択し、[OK] を選択します。

    [全般][ログ ディレクトリ] を除く各タブは、収集できる診断データのソースを表します。

    Azure Diagnostics の有効化と構成

    既定の [全般] タブでは、診断データの収集オプションとして、[エラーのみ][すべての情報][カスタム プラン] を指定できます。 既定のオプションの [エラーのみ]では、警告またはトレース メッセージが転送されないため、必要とするストレージ容量が最小限で済みます。 [すべての情報] オプションは転送する情報量が最も多いため、ストレージ コストが最も高いオプションです。

  7. この例では、収集するデータをカスタマイズできるよう、 [カスタム プラン] オプションを選択します。

  8. [ディスク クォータ (MB)] ボックスでは、ストレージ アカウントで診断データ用に割り当てる容量を指定します。 既定の値は必要に応じて変更可能です。

  9. 収集する診断データに対応する各タブで、[<ログの種類> の転送を有効にする] チェックボックスをオンにします。

    たとえば、アプリケーション ログを収集する場合は、[アプリケーション ログ] タブで [アプリケーション ログの転送を有効にする] チェックボックスをオンにします。それ以外にも、診断データの種類ごとに必要な情報があれば指定します。 各タブの構成情報については、この記事の後半にある「診断データのソースを構成する」セクションを参照してください。

  10. 目的の診断データの収集をすべて有効にしたら、[OK] を選択します。

  11. 更新したプロジェクトを保存します。

    [Microsoft Azure のアクティビティ ログ] ウィンドウのメッセージに、仮想マシンが更新されたことが示されます。

診断データのソースを構成する

診断データの収集を有効にしたら、収集対象のデータ ソースと収集する情報を厳密に選択できます。 以降のセクションでは、[診断構成] ダイアログ ボックスの各タブと各構成オプションの意味について説明します。

アプリケーション ログ

アプリケーション ログには Web アプリケーションによって生成された診断情報が記録されます。 アプリケーション ログを取り込むには、 [アプリケーション ログの転送を有効にする] チェックボックスをオンにします。 ストレージ アカウントへのアプリケーション ログの転送間隔を増減するには、[転送間隔 (分)] の値を変更します。 ログに取り込む情報の量も、[ログ レベル] の値を設定することによって変更できます。 たとえば、取り込む情報の量を増やすには [詳細] を、重要なエラーのみ取り込むには [重大] を選択します。 アプリケーション ログを出力する特定の診断プロバイダーがある場合は、プロバイダーの GUID を [プロバイダー GUID] ボックスに追加することでログを取り込むことができます。

アプリケーション ログ

アプリケーション ログの詳細については、「Azure App Service の Web アプリの診断ログの有効化」を参照してください。

Windows イベント ログ

Windows イベント ログを取り込むには、[Windows イベント ログの転送を有効にする] チェックボックスをオンにします。 ストレージ アカウントへのイベント ログの転送間隔を増減するには、[転送間隔 (分)] の値を変更します。 追跡するイベントの種類に該当するチェックボックスをオンにしてください。

イベント ログ

Azure SDK 2.6 以降を使用している場合、カスタム データ ソースを指定するには、<[データ ソース名]> テキスト ボックスに目的のデータ ソースを入力し、[追加] をクリックします。 指定したデータ ソースが diagnostics.cfcfg ファイルに追加されます。

パフォーマンス カウンター

パフォーマンス カウンターの情報は、システムのボトルネックを特定して、システムとアプリケーションのパフォーマンスを微調整するのに役立ちます。 詳細については、「Azure アプリケーションでのパフォーマンス カウンターの作成と使用」を参照してください。 パフォーマンス カウンターを取り込むには、[パフォーマンス カウンターの転送を有効にする] チェックボックスをオンにします。 ストレージ アカウントへのイベント ログの転送間隔を増減するには、[転送間隔 (分)] の値を変更します。 追跡するパフォーマンス カウンターに該当するチェックボックスをオンにしてください。

パフォーマンス カウンター

リストにないパフォーマンス カウンターを追跡するには、構文の候補を使用してパフォーマンス カウンターを入力し、 [追加] を選択します。 追跡できるパフォーマンス カウンターは、仮想マシンのオペレーティング システムによって決まります。構文の詳細については、「カウンター パスの指定」を参照してください。

インフラストラクチャ ログ

インフラストラクチャ ログには、Azure 診断インフラストラクチャ、RemoteAccess モジュール、および RemoteForwarder モジュールに関する情報があります。 インフラストラクチャ ログに関する情報を収集するには、[インフラストラクチャ ログの転送を有効にする] チェックボックスをオンします。 ストレージ アカウントへのインフラストラクチャ ログの転送間隔を増減するには、[転送間隔 (分)] の値を変更します。

診断インフラストラクチャ ログ

詳細については、「Azure Diagnostics を使用したログ データの収集」を参照してください。

[ログ ディレクトリ]

ログ ディレクトリには、インターネット インフォメーション サービス (IIS) の要求、失敗した要求、または選択したフォルダーのログ ディレクトリから収集されたデータがあります。 ログ ディレクトリを取り込むには、[ログ ディレクトリの転送を有効にする] チェックボックスをオンにします。 ストレージ アカウントへのログの転送間隔を増減するには、[転送間隔 (分)] の値を変更します。

[IIS ログ][失敗した要求ログ] など、収集するログのチェックボックスを選択します。 既定のストレージ コンテナー名が指定されていますが、必要に応じて名前を変更できます。

任意のフォルダーからログを取り込むことができます。 [絶対ディレクトリのログ] セクションにパスを指定し、[ディレクトリの追加] を選択します。 ログは指定したコンテナーに取り込まれます。

[ログ ディレクトリ]

ETW ログ

[Windows イベント トレーシング](ETW) を使用している場合、ETW ログを取り込むには、[ETW のログの転送を有効にする] チェックボックスをオンにします。 ストレージ アカウントへのログの転送間隔を増減するには、[転送間隔 (分)] の値を変更します。

イベントは、指定したイベント ソースおよびイベント マニフェストから取り込まれます。 イベント ソースを指定するには、[イベント ソース] セクションで名前を入力し、[イベント ソースの追加] を選択します。 同様に、[イベント マニフェスト] セクションでイベント マニフェストを指定し、[イベント マニフェストの追加] を選択できます。

ETW ログ

System.Diagnostics.aspx 名前空間のクラスを通して ASP.NET で ETW フレームワークがサポートされています。 Microsoft.WindowsAzure.Diagnostics は、標準の System.Diagnostics.aspx クラスを継承して拡張する名前空間です。この名前空間では、Azure 環境のログ記録フレームワークとして System.Diagnostics.aspx を使用できます。 詳細については、Microsoft Azure でログ記録とトレースを制御する方法Azure クラウドサービスと仮想マシンでの診断の有効化に関するページを参照してください。

クラッシュ ダンプ

ロール インスタンスがクラッシュしたときの情報を取り込むには、[クラッシュ ダンプの転送を有効にする] チェックボックスをオンにします。 (ASP.NET によってほとんどの例外が処理されるため、これは一般的に worker ロールに対してのみ機能します)。クラッシュ ダンプに充てる記憶域スペースの割合を増減するには、[ディレクトリのクォータ (%)] の値を変更します。 クラッシュ ダンプが保存されるストレージ コンテナーを変更でき、ダンプの種類として [フル] または [ミニ] を選択できます。

次のスクリーンショットは、現在追跡されているプロセスを一覧表示しています。 取り込むプロセスのチェックボックスをオンにしてください。 別のプロセスを一覧に追加するには、プロセス名を入力し、[プロセスの追加] を選択します。

クラッシュ ダンプ

詳細については、Microsoft Azure でのログ記録とトレースの制御に関するページを参照してください。

診断データの表示

クラウド サービスまたは仮想マシンの診断データを収集したら、そのデータを表示することができます。

クラウド サービスの診断データを表示するには

  1. クラウド サービスを通常どおりにデプロイして実行します。

  2. Visual Studio が生成するレポートまたはストレージ アカウントのテーブルのどちらでも診断データを表示できます。 レポートのデータを表示するには、Cloud Explorer またはサーバー エクスプローラーを開き、目的のロールのノードのショートカット メニューを開いて、[診断データの表示] を選択します。

    診断データを表示する

    利用可能なデータを示したレポートが表示されます。

    Visual Studio の Microsoft Azure Diagnostics レポート

    最新のデータが表示されない場合は、転送間隔が経過するまで待ちます。

    データをすぐに更新するには、[更新] リンクを選択します。 データを自動的に更新するには、[自動更新] ドロップダウン リスト ボックスで間隔を選択します。 エラー データをエクスポートするには、[CSV にエクスポート] ボタンをクリックして、Excel ワークシートで開くことができるコンマ区切り値ファイルを作成します。

    Cloud Explorer またはサーバー エクスプローラーで、対象のデプロイに関連付けられたストレージ アカウントを開きます。

  3. テーブル ビューアーで診断テーブルを開き、収集したデータを確認します。 IIS ログおよびカスタム ログについては、BLOB コンテナーを開くことができます。 次の表に、異なるログ ファイルのデータを含むテーブルまたは BLOB コンテナーの一覧を示します。 テーブルの項目には、ログ ファイルのデータだけでなく、EventTickCountDeploymentIdRole、および RoleInstance が含まれており、どの仮想マシンとロールがデータがいつ生成したかを特定できます。

    診断データ 説明 場所
    アプリケーション ログ コードが System.Diagnostics.Trace クラスのメソッドを呼び出すことで生成するログ。 WADLogsTable
    イベント ログ 仮想マシンの Windows イベント ログから生成されるデータ。 Windows がこれらのログに情報を格納しますが、アプリケーションやサービスも、このログを使用してエラーまたはログ情報を報告します。 WADWindowsEventLogsTable
    パフォーマンス カウンター 仮想マシンで使用できるパフォーマンス カウンターのデータを収集できます。 パフォーマンス カウンターは、オペレーティング システムが備えている機能であり、メモリ使用率やプロセッサ時間など多くの統計情報を保持します。 WADPerformanceCountersTable
    インフラストラクチャ ログ 診断インフラストラクチャ自体から生成されるログ。 WADDiagnosticInfrastructureLogsTable
    IIS ログ Web 要求を記録するログ。 クラウド サービスが大量のトラフィックを取得する場合、これらのログは長くなる可能性があります。 このデータは、必要なときにのみ収集して格納することをお勧めします。 失敗した要求のログは、そのデプロイ、ロール、およびインスタンスのパスにある wad-IIS-failedreqlogs の BLOB コンテナーで見つけることができます。 ログ全体は wad-IIS-logfiles にあります。 各ファイルのエントリは WADDirectories テーブルで生成されます。
    クラッシュ ダンプ クラウド サービス (通常はワーカー ロール) のバイナリ イメージを提供します。 wad-crush-dumps BLOB コンテナー
    カスタム ログ ファイル ユーザー定義のログ データです。 ストレージ アカウントのカスタム ログ ファイルの場所をコードで指定できます。 たとえば、カスタム BLOB コンテナーを指定できます。
  4. データが切り捨てられる場合は、その種類のデータのバッファーを拡張したり、仮想マシンからストレージ アカウントへのデータ転送の間隔を短くしてみてください。

  5. (省略可能) ストレージ コストを削減するために、折を見てストレージ アカウントからデータを消去します。

  6. フル デプロイを行うと、Azure の diagnostics.cscfg ファイルが更新され、診断構成に対する変更があれば、クラウド サービスによってピックアップされます。 既存のデプロイを更新した場合は、Azure で .cscfg ファイルは更新されません。 その場合でも、次のセクションの手順に従って診断の設定を変更することができます。 フル デプロイの実行と既存のデプロイの更新の詳細については、 Azure アプリケーションの公開ウィザードに関するページを参照してください。

仮想マシンの診断データを表示するには

  1. 仮想マシンのショートカット メニューで [診断データの表示] を選択します。

    Azure 仮想マシンの診断データを表示する

    [診断の概要] ダイアログ ボックスが表示されます。

    Azure virtual machine diagnostics summary

    最新のデータが表示されない場合は、転送間隔が経過するまで待ちます。

    データをすぐに更新するには、[更新] リンクを選択します。 データを自動的に更新するには、[自動更新] ドロップダウン リスト ボックスで間隔を選択します。 エラー データをエクスポートするには、[CSV にエクスポート] ボタンをクリックして、Excel ワークシートで開くことができるコンマ区切り値ファイルを作成します。

クラウド サービスのデプロイ後に診断を設定する

既に実行しているクラウド サービスの問題について調べるとき、最初にロールをデプロイするときには指定しなかったデータを収集したい場合があります。 その場合は、サーバー エクスプローラーで設定を変更することで必要なデータの収集を開始できます。 診断は、ロールの単一インスタンスを対象に設定することも、すべてのインスタンスを対象に設定することもできます。どちらが対象となるかは、[診断構成] ダイアログ ボックスをインスタンスのショートカット メニューから開くか、ロールのショートカット メニューから開くかによって決まります。 ロール ノードを構成した場合、変更はすべてのインスタンスに適用されます。 インスタンス ノードを構成した場合、変更は対象のインスタンスにのみ適用されます。

実行中のクラウド サービスの診断を構成するには

  1. サーバー エクスプローラーで、[クラウド サービス] ノードを展開し、ノードの一覧を展開して、調べたいロールとインスタンスのどちらかまたは両方を見つけます。

    診断の構成

  2. インスタンス ノードまたはロール ノードのショートカット メニューで [診断の設定の更新] を選択し、収集する診断の設定を選択します。

    構成設定については、この記事の「診断データのソースを構成する」を参照してください。 診断データを表示する方法については、この記事の「診断データの表示」を参照してください。

    サーバー エクスプローラーでデータ収集を変更した場合、その変更は、クラウド サービスを再度フル デプロイするまで有効になります。 既定の発行設定を使用する場合、変更は上書きされません。 既定の発行設定は、再度のフル デプロイを行うためではなく、既存のデプロイを更新するためのものです。 デプロイ時に設定が消去されるようにするには、発行ウィザードの [詳細設定] タブに移動し、[配置の更新] チェックボックスをオフにします。 このチェックボックスをオフにした状態で再デプロイすると、ロールの [プロパティ] エディターで行った .wadcfgx ファイルの設定に戻ります。 デプロイを更新した場合、Azure は前の設定を保持します。

Azure クラウド サービスの問題のトラブルシューティング

クラウド サービス プロジェクトで、ロールが "ビジー" 状態のままになる、リサイクルを繰り返す、内部サーバー エラーをスローするなどの問題が発生した場合、問題を診断して修正するために使用できる各種のツールと手法があります。 一般的な問題とソリューションの具体例や、エラーを診断して修正するために使用できる概念とツールの概要については、Azure platform as a service (PaaS) に関するページを参照してください。

Q & A

バッファー サイズとは何ですか。その大きさはどのくらいが適切ですか。

ローカル ファイル システムに保存できる診断データの量は、各仮想マシン インスタンスのクォータによって制限されています。 これに加えて、利用できる診断データの種類ごとにバッファー サイズを指定できます。 このバッファー サイズは、その種類のデータに対する個別のクォータのような役割を果たします。 クォータ全体とメモリ残量は、診断データの種類用のダイアログ ボックスの下部で確認できます。 バッファーのサイズを大きくしたり、データの種類を増やすには、クォータ全体を操作します。 クォータ全体を変更するには、diagnostics.wadcfg 構成ファイルを変更します。 診断データは、アプリケーションのデータと同じファイル システムに格納されます。 アプリケーションが大量のディスク領域を使用する場合は、診断クォータ全体を増加させないでください。

転送間隔とは何ですか。その長さはどのくらいが適切ですか。

転送間隔は、データの取り込み間隔、つまり前回の取り込みから次の取り込みまでの経過時間です。 転送間隔として指定された時間が経過するたびに、仮想マシンのローカル ファイル システムからストレージ アカウントのテーブルにデータが移動されます。 収集されたデータの量が、転送間隔の終わりを待たずにクォータを超えた場合、古いデータから順に破棄されます。 データがバッファー サイズまたは全体のクォータを超えるためにデータが失われる場合は、転送間隔を短くしてください。

タイム スタンプには、どのタイム ゾーンが使用されますか。

タイム スタンプは、クラウド サービスをホストしているデータ センターのローカル タイム ゾーンです。 ログ テーブルでは次の 3 つのタイム スタンプ列が使用されます。

  • PreciseTimeStamp: イベントの ETW タイム スタンプ。 つまり、クライアントのイベントがログに記録された時刻です。
  • TIMESTAMP: アップロード頻度境界に切り捨てられた PreciseTimeStamp。 たとえば、アップロード頻度が 5 分で、イベント時刻が 00:17:12 の場合、TIMESTAMP は 00:15:00 になります。
  • Timestamp: エンティティが Azure テーブルに作成された時刻のタイム スタンプ。

診断情報を収集するためのコストを管理するにはどうすればよいですか。

既定の設定 ([ログ レベル][エラー][転送間隔][1 分]) はコストが最小となるように設計されています。 収集する診断データを増やしたり、転送間隔を短くしたりすると、コンピューティング コストが増大します。 必要以上に多くのデータを収集しないようにし、必要がなくなったらデータ収集を無効にしてください。 この記事ですでに説明したように、データ収集は、実行時も含めていつでも有効にすることができます。

IIS から失敗した要求のログを収集するにはどうすればよいですか。

既定では、IIS は失敗した要求のログを収集しません。 Web ロールの web.config ファイルを編集することで、失敗した要求のログを収集するように IIS を設定できます。

OnStart など RoleEntryPoint のメソッドからトレース情報を取得できません。 理由

RoleEntryPoint のメソッドは、IIS ではなく WAIISHost.exe のコンテキストで呼び出されます。 通常であればトレースを有効にする web.config の構成情報は適用されません。 この問題を解決するには、Web ロール プロジェクトに .config ファイルを追加し、そのファイルに RoleEntryPoint コードを含む出力アセンブリと同じ名前を付けます。 既定の Web ロール プロジェクトでは、.config ファイルの名前は WAIISHost.exe.config です。このファイルに次の行を追加します。

<system.diagnostics>
  <trace>
      <listeners>
          <add name "AzureDiagnostics" type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener">
              <filter type="" />
          </add>
      </listeners>
  </trace>
</system.diagnostics>

[プロパティ] ウィンドウで、[出力ディレクトリにコピー] プロパティを [常にコピーする] に設定します。

Azure の診断ログの詳細については、Azure Cloud Services および Virtual Machines での診断の有効化に関するページと「Azure App Service の Web アプリの診断ログの有効化」を参照してください。