このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開

Azure 診断構成の初期化または変更

更新日: 2014年12月

診断データの収集は、Windows Azure 診断モジュールをサービス モデルにインポートし、診断データの収集先のデータ ソースを構成して行います。診断モニターは、ロール インスタンスの診断データを収集するために Windows Azure と Microsoft Azure コンピューティング エミュレーター で実行されます。診断モジュールがロールのサービス モデルにインポートされている場合は、ロール インスタンスの起動時に診断モニターが自動的に起動します。診断データを収集するには、診断モニターの構成にデータ ソースを追加する必要があります。診断モニターを明示的に構成していない場合は、ロールの起動時に既定の構成が使用されます。既定では、使用できるデータ ソースの一部のみが診断モニターに追加されるため、diagnostics.wadcfg ファイルを使用して他のデータ ソースのコレクションを構成する必要があります。収集された診断データはロール インスタンスに格納されますが、ServiceConfiguration.cscfg ファイルでストレージ アカウントを指定しない限り、ストレージには保存されません。アプリケーションを Windows Azure に配置した後、Windows Azure の外部で実行されているアプリケーションから診断モニターの構成をリモートで変更することもできます。アプリケーションで診断を有効にする詳細な手順については、「クラウド サービスの診断を有効にする方法」を参照してください。

診断データを収集するには、診断データの収集に使用する各ロールのサービス モデルに診断モジュールをインポートする必要があります。モジュールをインポートするには、ServiceDefinition.csdef ファイルに Import 要素を追加します。次の例は、Web ロールに対して定義された Import 要素を示しています。

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MyHostedService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
  <WebRole name="WebRole1">
    <!--<Sites> ... </Sites> -->
    <!-- <Endpoints> ... </Endpoints> -->
    <Imports>
      <Import moduleName="Diagnostics" />
    </Imports>
  </WebRole>
</ServiceDefinition>

サービス定義ファイルおよびサービス構成ファイルの定義の詳細については、「Windows Azure スキーマ リファレンス」を参照してください。ホステッド サービスのサービス モデルの定義の詳細については、「Azure のクラウド サービスのセットアップ」を参照してください。

既定では、診断データはストレージに保存されません。診断データをストレージに転送するには、ServiceConfiguration.cscfg ファイルで接続文字列を定義する必要があります。次の例は、データを Microsoft Azure ストレージ エミュレーターに転送するための接続文字列を定義する方法を示しています。

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="MyHostedService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="1" osVersion="*">
  <Role name="WebRole1">
    <Instances count="1" />
    <ConfigurationSettings>
    <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

Windows Azure でストレージ アカウントを使用する場合は、アカウント名とアカウント キーを含めるように接続文字列を変更する必要があります。


<ConfigurationSettings>
   <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<AccountName>;AccountKey=<AccountKey>"/>
</ConfigurationSettings>

AccountName および AccountKey の値は、Windows Azure 管理ポータルのストレージ アカウント ダッシュボードの [アクセス キーの管理] に表示されます。接続文字列のプロトコルは https である必要があります。

既定では、使用できるデータ ソースの一部のみが診断モニターに追加されるため、特定の種類の診断データを収集するには、他のデータ ソースを追加する必要があります。アプリケーションで収集するように構成できる診断データの種類の詳細については、「診断データ ソース」を参照してください。

診断データの収集は、診断モジュールをサービス モデルにインポートし、診断データの収集先のデータ ソースを構成して行います。診断データを収集するには、診断モニターの構成にデータ ソースを追加する必要があります。診断を構成するためのメカニズムはいくつかありますが、ロール全体の構成を管理するには、配置時に diagnostics.wadcfg 構成ファイルを使用するメカニズムをお勧めします。詳細については、「診断構成のメカニズムと優先順位」を参照してください。

クラウド サービスを展開した後、Windows Azure の外部で実行されている別のアプリケーションから、展開済みアプリケーションの診断モニターの構成をリモートで変更することもできます。

バージョン 1.2 では、診断モニターをプログラムで構成できました。これはバージョン 1.3 以降で廃止されました。バージョン 1.2、1.3、およびそれ以上のバージョンでは、Microsoft Azure SDK で代わりに XML 構成ファイル (diagnostics.wadcfg) を使用して診断を構成できます。この方法は、OnStart メソッドでコードを記述する方法に比べて、多くの利点があります。

  1. OnStart メソッドを実行する前に診断が始まるため、スタートアップ タスクでのエラーをキャッチして記録できます。

  2. 実行時に構成に加えた変更が再起動後も維持されます。

  3. 診断構成を変更するために、コードをリビルドする必要がありません。

  4. 追加のコードを使用せずに、診断モニターを特定の構成で自動的に起動できます (追加のコードを使用すると、ロールの起動を妨げる例外が発生する可能性があります)。

Web ロールの場合、diagnostics.wadcfg 構成ファイルはロールのルート ディレクトリ内の bin ディレクトリにあります。ワーカー ロールの場合、diagnostics.wadcfg 構成ファイルはロールのルート ディレクトリにあります。診断モジュールのインポート時にこれらの場所のいずれかに構成ファイルが存在する場合、診断モニターは既定の設定ではなく、その構成ファイルを使用して設定を構成します。Web ロールまたはワーカー ロールが配置されると、diagnostics.wadcfg ファイルの構成情報がストレージ アカウントの wad-control-container コンテナーに書き込まれます。診断構成ファイルの使用の詳細については、「Azure 診断の構成ファイルの使用」を参照してください。

DiagnosticMonitorConfiguration を指定した Start メソッドを使用すると、ロールの OnStart メソッドの診断構成を設定できます。この方法は、新しい配置の場合は有効ですが、更新配置の場合は有効でないため、使用しないことをお勧めします。

noteメモ
これは Azure SDK 2.4 以下に適用されます。

クラウド サービスを展開した後、DeploymentDiagnosticManager クラスを使用して、Windows Azure の外部のアプリケーションで実行されているコードから診断モニターの構成をリモートで変更できます。このクラスから、1 つ以上のロール インスタンスの診断モニターを変更できます。また、RoleInstanceDiagnosticManager クラスを使用して、1 つのロール インスタンスのみの診断モニターの構成を変更することもできます。詳細については、「診断モニターの構成のリモート変更」を参照してください。

noteメモ
これは Azure SDK 2.4 以下に適用されます。

関連項目

表示:
© 2015 Microsoft