Azure リソース ログは、Azure リソースで実行される操作に関する分析情報を提供します。 リソース ログの内容は、リソースの種類ごとに異なります。 リソースに対して実行された操作、それらの操作の状態、およびリソースの正常性とパフォーマンスを理解するのに役立つその他の詳細に関する情報を含めることができます。
診断設定を作成するときに、次の 1 つ以上の宛先にリソース ログを送信することを選択できます。 選択する宛先は、分析、保持、および他のシステムとの統合のニーズに基づいています。
次の機能のために、リソース ログを Log Analytics ワークスペース に送信します。
- ログ クエリを使用して、リソース ログを他のログ データと関連付 ける。
- リソース ログ エントリから ログ アラート を作成します。
- Power BI を使用してリソース ログ データにアクセスします。
コレクション モード
リソース ログによって使用される Log Analytics ワークスペース内のテーブルは、リソースの種類と、リソースが使用しているコレクションの種類によって異なります。 リソース ログには、次の 2 種類の収集モードがあります。
- Azure 診断 - すべてのデータが AzureDiagnostics テーブルに書き込まれます。
- リソース固有 - データは、リソースのカテゴリごとに個別のテーブルに書き込まれます。
リソース固有
リソース固有モードを使用するログの場合、診断設定で選択したログ カテゴリごとに、選択したワークスペース内の個々のテーブルが作成されます。
リソース固有のログには、Azure 診断ログよりも次の利点があります。
- ログ クエリ内のデータの操作が容易になる。
- スキーマとその構造の検出の可能性が高まる。
- インジェストの待ち時間とクエリ時間でパフォーマンスが向上する。
- 特定のテーブルに対して Azure ロールベースのアクセス制御権限を付与する機能が提供される。
リソース固有のログとテーブルの詳細については、「Azure Monitor でサポートされるリソース ログのカテゴリ」を参照してください。
Azure 診断モード
Azure 診断モードでは、診断設定のすべてのデータが AzureDiagnostics テーブルに収集されます。 この従来の方法は、現在、少数の Azure サービスで使用されています。 複数の種類のリソースから同じテーブルにデータが送信されるため、そのスキーマは、収集されるすべての種類のデータ型のスキーマのスーパーセットになります。 このテーブルの構造の詳細と、この潜在的に多数の列でどのように機能するかについては、AzureDiagnostics のリファレンスを参照してください。
AzureDiagnostics テーブルには、ログを生成したリソースの resourceId、ログのカテゴリ、ログが生成された時刻、およびリソース固有のプロパティが含まれます。
コレクション モードを選択する
ほとんどの Azure リソースでは、ユーザーに選択肢を与えることなく、Azure 診断またはリソース固有モードでワークスペースにデータが書き込まれます。 詳細については、「Azure リソース ログの共通およびサービス固有のスキーマ」を参照してください。
最終的にすべての Azure サービスで、リソース固有モードが使用されます。 この移行の一環として、一部のリソースでは診断設定でモードを選択できます。 リソース固有モードを使用すると、データの管理がしやすくなるため、新しい診断設定にはこのモードを指定してください。 また、後で複雑な移行を回避するのにも役立ちます。
既存の診断設定をリソース固有モードに変更できます。 この場合、既に収集されたデータは、ワークスペースの保持期間の設定に従って削除されるまで、AzureDiagnostics
テーブル内に残ります。 新しいデータは専用のテーブルに収集されます。 両方のテーブルのデータに対してクエリを実行するには、union 演算子を使用します。
リソース固有モードをサポートしている Azure サービスに関するお知らせは、Azure の更新情報ブログを引き続きご覧ください。
リソース ログを Azure の外部に送信するには、イベント ハブに送信します。 たとえば、リソース ログは、サードパーティの SIEM またはその他のログ分析ソリューションに送信される場合があります。
イベント ハブからのリソース ログは、各ペイロードのレコードを含む records
要素を含む JSON 形式で消費されます。 「Azure リソース ログの共通およびサービス固有のスキーマ」で説明されているように、スキーマはリソースの種類によって異なります。
次のサンプル出力データは、リソース ログの Azure Event Hubs からのものです。
{
"records": [
{
"time": "2019-07-15T18:00:22.6235064Z",
"workflowId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
"resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330013509921957/ACTIONS/SEND_EMAIL",
"category": "WorkflowRuntime",
"level": "Error",
"operationName": "Microsoft.Logic/workflows/workflowActionCompleted",
"properties": {
"$schema": "2016-04-01-preview",
"startTime": "2016-07-15T17:58:55.048482Z",
"endTime": "2016-07-15T18:00:22.4109204Z",
"status": "Failed",
"code": "BadGateway",
"resource": {
"subscriptionId": "AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E",
"resourceGroupName": "JohnKemTest",
"workflowId": "2222cccc-33dd-eeee-ff44-aaaaaa555555",
"workflowName": "JohnKemTestLA",
"runId": "08587330013509921957",
"___location": "westus",
"actionName": "Send_email"
},
"correlation": {
"actionTrackingId": "3333dddd-44ee-ffff-aa55-bbbbbbbb6666",
"clientTrackingId": "08587330013509921958"
}
}
},
{
"time": "2019-07-15T18:01:15.7532989Z",
"workflowId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
"resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330012106702630/ACTIONS/SEND_EMAIL",
"category": "WorkflowRuntime",
"level": "Information",
"operationName": "Microsoft.Logic/workflows/workflowActionStarted",
"properties": {
"$schema": "2016-04-01-preview",
"startTime": "2016-07-15T18:01:15.5828115Z",
"status": "Running",
"resource": {
"subscriptionId": "AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E",
"resourceGroupName": "JohnKemTest",
"workflowId": "dddd3333-ee44-5555-66ff-777777aaaaaa",
"workflowName": "JohnKemTestLA",
"runId": "08587330012106702630",
"___location": "westus",
"actionName": "Send_email"
},
"correlation": {
"actionTrackingId": "ffff5555-aa66-7777-88bb-999999cccccc",
"clientTrackingId": "08587330012106702632"
}
}
}
]
}
リソース ログを Azure Storage に送信し、アーカイブ用に保持します。 診断設定の作成後、有効にしたいずれかのログ カテゴリのイベントが発生するとすぐ、ストレージ アカウントにストレージ コンテナーが作成されます。
注
アーカイブに代わる方法としては、低コストで長期保有の Log Analytics ワークスペースのテーブルにリソース ログを送信します。
コンテナー内の BLOB には、次の名前付け規則が使用されます。
insights-logs-{log category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/RESOURCEGROUPS/{resource group name}/PROVIDERS/{resource provider name}/{resource type}/{resource name}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
ネットワーク セキュリティ グループの BLOB には、この例のような名前を付けることができます。
insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUP/TESTNSG/y=2016/m=08/d=22/h=18/m=00/PT1H.json
各 PT1H.json BLOB には、BLOB URL で指定されている時間に受信したログ ファイルからのイベントを含む JSON オブジェクトが含まれています。 現在の時間中、イベントは生成された時間に関係なく、受信されたときに PT1H.json ファイルに追加されます。 BLOB は 1 時間ごとに作成されるため、URL の分を示す数値 (m=00
) は常に 00
です。
PT1H.json ファイル内では、各イベントは、次の形式で保存されます。 これには一般的な最上位スキーマが使用されますが、「リソース ログのスキーマ」で説明されているように、各 Azure サービスに固有です。
注
ログは、生成された時間に関係なく、ログが受信された時刻に基づいて BLOB に書き込まれます。 これは、特定の BLOB に、BLOB の URL で指定された時間外のログ データを含めることができることを意味します。 古いテレメトリのアップロードがサポートされている Application Insights のようなデータ ソースの場合、BLOB には過去 48 時間のデータが含まれている可能性があります。
新しい 1 時間の開始時に、新しいログが新しい時間の BLOB に書き込まれる間も、既存のログが前の時間の BLOB に書き込まれている可能性があります。
{"time": "2016-07-01T00:00:37.2040000Z","systemId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1","category": "NetworkSecurityGroupRuleCounter","resourceId": "/SUBSCRIPTIONS/AAAA0A0A-BB1B-CC2C-DD3D-EEEEEE4E4E4E/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/TESTNSG","operationName": "NetworkSecurityGroupCounters","properties": {"vnetResourceGuid": "{aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e}","subnetPrefix": "10.3.0.0/24","macAddress": "000123456789","ruleName": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/default-allow-rdp","direction": "In","type": "allow","matchedConnections": 1988}}