Azure Diagnostics 拡張機能は Azure Monitor のエージェントで、ゲスト オペレーティング システムと Azure 仮想マシンと他のコンピューティング リソースのワークロードから監視データを収集します。 この記事では、Azure の外部の場所に転送できるように、Windows Azure Diagnostic (WAD) 拡張機能から Azure Event Hubs にデータを送信する方法について説明します。
サポートされるデータ
以下のデータをゲスト オペレーティング システムから収集して Event Hubs に送信できます。 IIS ログやクラッシュ ダンプなど、WAD によって収集される他のデータ ソースは、Event Hubs に送信できません。
- Windows イベント トレーシング (ETW) イベント
- パフォーマンス カウンター
- Windows イベント ログ (Windows イベント ログのアプリケーション ログを含む)
- Azure Diagnostics インフラストラクチャ ログ
前提条件
- Windows Diagnostics 拡張機能 1.6 以降。 サポートされているリソースのバージョン履歴と Azure Diagnostics 拡張機能の概要については、Azure Diagnostics 拡張機能の構成スキーマのバージョンと履歴を参照してください。
- Event Hubs 名前空間が、常にプロビジョニングされている必要があります。 詳細については、「 Event Hubs の概要 」を参照してください。
- イベント ハブは、Standard レベル以上である必要があります。 Basic レベルはサポートされていません。
構成スキーマ
異なるオプションで診断拡張機能を有効化および構成するためには、Windows Azure Diagnostics 拡張機能 (WAD) のインストールと構成 を参照してください。また、構成スキーマのリファレンスについては、Azure Diagnostics 構成スキーマを参照してください。 この記事の残りの部分では、この構成を使用してイベント ハブにデータを送信する方法について説明します。
Azure Diagnostics では常に、ログとメトリックが Azure Storage アカウントに送信されます。 追加の場所にデータを送信する 1 つ以上 のデータ シンク を構成できます。 各シンクは、プライベート構成の機密情報を使用して、パブリック構成の SinksConfig 要素 で定義されます。 イベント ハブのこの構成では、次の表の値を使用します。
プロパティ | 内容 |
---|---|
名前 | シンクのわかりやすい名前。 シンクに送信するデータ ソースを指定するために構成で使用します。 |
url | イベントハブの URL。形式は <イベントハブの名前空間>.servicebus.windows.net/<イベント ハブ名> です。 |
共有アクセスキーネーム | 少なくとも 送信 機関を持つイベント ハブの共有アクセス ポリシーの名前。 |
共有アクセスキー | イベント ハブに対する共有アクセス ポリシーのプライマリ キーまたはセカンダリ キー。 |
パブリック構成とプライベート構成の例を次に示します。 これは、イベント ハブ データ シンクの構成方法と使用方法を説明するために、1 つのパフォーマンス カウンターとイベント ログを含む最小構成です。 より複雑な例については、 Azure Diagnostics の構成スキーマ を参照してください。
パブリック構成
{
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 5120,
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"sinks": "myEventHub",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Processor(_Total)\\% Processor Time",
"sampleRate": "PT3M"
}
]
},
"WindowsEventLog": {
"scheduledTransferPeriod": "PT1M",
"sinks": "myEventHub",
"DataSource": [
{
"name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
}
]
}
},
"SinksConfig": {
"Sink": [
{
"name": "myEventHub",
"EventHub": {
"Url": "https://diags-mycompany-ns.servicebus.windows.net/diageventhub",
"SharedAccessKeyName": "SendRule"
}
}
]
}
},
"StorageAccount": "mystorageaccount",
}
プライベート構成
{
"storageAccountName": "mystorageaccount",
"storageAccountKey": "{base64 encoded key}",
"storageAccountEndPoint": "https://core.windows.net",
"EventHub": {
"Url": "https://diags-mycompany-ns.servicebus.windows.net/diageventhub",
"SharedAccessKeyName": "SendRule",
"SharedAccessKey": "{base64 encoded key}"
}
}
構成オプション
データ シンクにデータを送信するには、データ ソースのノードで シンク 属性を指定します。 シンク属性を配置する場所によって、割り当てのスコープが決まります。 次の例では、 sinks 属性が PerformanceCounters ノードに定義されているため、すべての子パフォーマンス カウンターがイベント ハブに送信されます。
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"sinks": "MyEventHub",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Processor(_Total)\\% Processor Time",
"sampleRate": "PT3M"
},
{
"counterSpecifier": "\\Memory\\Available MBytes",
"sampleRate": "PT3M"
},
{
"counterSpecifier": "\\Web Service(_Total)\\ISAPI Extension Requests/sec",
"sampleRate": "PT3M"
}
]
}
次の例では、 sinks 属性が 3 つのカウンターに直接適用されます。これにより、これらのパフォーマンス カウンターのみがイベント ハブに送信されます。
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Processor(_Total)\\% Processor Time",
"sampleRate": "PT3M",
"sinks": "MyEventHub"
},
{
"counterSpecifier": "\\Memory\\Available MBytes",
"sampleRate": "PT3M"
},
{
"counterSpecifier": "\\Web Service(_Total)\\ISAPI Extension Requests/sec",
"sampleRate": "PT3M"
},
{
"counterSpecifier": "\\ASP.NET\\Requests Rejected",
"sampleRate": "PT3M",
"sinks": "MyEventHub"
},
{
"counterSpecifier": "\\ASP.NET\\Requests Queued",
"sampleRate": "PT3M",
"sinks": "MyEventHub"
}
]
}
構成を検証する
さまざまな方法を使用して、データがイベント ハブに送信されることを検証できます。 簡単な方法の 1 つは、「 Azure Blob Storage または Azure Data Lake Storage の Azure Event Hubs を使用したイベントのキャプチャ」の説明に従って Event Hubs キャプチャを使用することです。
Event Hubs シンクのトラブルシューティング
Azure Diagnostics 自体のログとエラーが含まれている Azure Storage テーブル WADDiagnosticInfrastructureLogsTable を確認します。 1 つのオプションは、 Azure Storage Explorer などのツールを使用してこのストレージ アカウントに接続し、このテーブルを表示し、過去 24 時間以内に TimeStamp のクエリを追加することです。 ツールを使用して .csv ファイルをエクスポートし、Microsoft Excel などのアプリケーションで開くことができます。 Excel では、 EventHubs などの通話カード文字列を簡単に検索して、報告されるエラーを確認できます。
イベント ハブが正しくプロビジョニングされていることを確認してください。 構成の PrivateConfig セクションのすべての接続情報は、ポータルに表示されるリソースの値と一致する必要があります。 ポータルで SAS ポリシー (例では SendRule ) が定義されていること、および 送信 アクセス許可が付与されていることを確認します。