1

Windows Azure を使用して Python プロジェクトをホストしていますが、診断を有効にしようとしていますが、良い結果は得られません。

私は.NETではなくPythonを使用しているため、実際に構成できる唯一の方法は構成ファイルを使用することです。

私の設定ファイルの下:

ServiceDefinition.csdef

...
<Imports>
    <Import moduleName="Diagnostics" />
</Imports>
...

ServiceConfiguration.Cloud.cscfg

....
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<my-account-name>;AccountKey=<my-account-key"/>
....

diagnostics.wadcfg :

<DiagnosticMonitorConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"
      configurationChangePollInterval="PT10M"
      overallQuotaInMB="1200">

   <DiagnosticInfrastructureLogs bufferQuotaInMB="100"
      scheduledTransferLogLevelFilter="Warning"
      scheduledTransferPeriod="PT5M" />

   <Logs bufferQuotaInMB="200"
      scheduledTransferLogLevelFilter="Warning"
      scheduledTransferPeriod="PT5M" />

   <Directories bufferQuotaInMB="600" 
      scheduledTransferPeriod="PT5M">

      <CrashDumps container="wad-crash-dumps" directoryQuotaInMB="200" />
      <FailedRequestLogs container="wad-frq" directoryQuotaInMB="200" />
      <IISLogs container="wad-iis" directoryQuotaInMB="200" />
   </Directories>
   <WindowsEventLog bufferQuotaInMB="200"
      scheduledTransferLogLevelFilter="Warning"
      scheduledTransferPeriod="PT5M">

      <DataSource name="System!*" />
   </WindowsEventLog>
</DiagnosticMonitorConfiguration>

Diagnostics Manager で、実際にデータを確認できません。

ありがとう。

4

1 に答える 1

1

diagnostics.wadcfg の場所をお尋ねしてもよろしいですか? 通常のワーカー ロールの場合、diagnostics.wadcfg はルート フォルダーにある必要があります。プロジェクトにワーカー ロール モジュールがないため、ロール フォルダーのアーキテクチャの場所は非常に重要です。Python アプリケーションのフォルダー構造が通常の worker ロールとまったく同じであることを確認してから、diagnostics.wadcfg をロールのルート フォルダーにドロップします。(その情報を質問に追加して確認してください)

*.Diagnostics.ConnectionString. これは、Azure ロールの診断コンポーネントが提供された構成を読み取ることができ、宛先 BLOB ストレージで構成 XML を作成できたことを示唆するチェックです (ログ Azure テーブル ストレージの書き込みには同じ Azure ストレージが使用されます)。確認してください。

最後に、diagnostics.wadcfg にさらに作業が必要です。これは非 .net ワーカー ロールであるため、IIS ログを構成し (実際に IIS をワーカー ロールで実行していますか?)、システム イベント ログを「警告のみ」を転送するようにスケジュールして、警告がない場合に転送します。最後に、ログ転送時間はテスト中に長い 5 分に設定されます。

診断が機能しているかどうかをテストするために、以下のように提案できます。

  • Azure VM を実行している IIS がない場合は、IIS ログを削除します。
  • イベント ログの DataSource を System!* から Application!* に置き換え、フィルターを Info レベルに設定します。
  • ログ転送時間を 1 分未満に変更する
  • 実際の Azure Storage に接続された Diagnostics 接続文字列を使用して、Development Fabric でまったく同じコードを実行します。
  • マシンにカスタム イベント ログを追加し、それらが制限時間内に Azure テーブル ストレージに転送され、特定のテーブルが作成されるかどうかを確認します

上記は、問題のトラブルシューティングに役立ちます。

于 2012-09-07T16:23:54.450 に答える