Azure Monitor REST API を使用して診断ログを設定する

この記事では、Azure Monitor REST API を使用して Azure Data Factory の診断ログを設定する方法について説明します。

診断設定

診断設定を使用して、非互換性リソースの診断ログを構成します。 リソース コントロールの設定には、次の機能があります。

  • 診断ログの送信先を指定します。 たとえば、Azure ストレージ アカウント、Azure イベント ハブ、監視ログなどがあります。
  • 送信するログ カテゴリを指定します。
  • 各ログ カテゴリをストレージ アカウントに保持する期間を指定します。
  • 0 日のリテンション期間は、ログが永続的に保持されていることを意味します。 それ以外の場合、値には 1 ~ 2,147,483,647 の任意の日数を指定できます。
  • 保持ポリシーが設定されていても、ストレージ アカウントにログを格納することが無効になっている場合、アイテム保持ポリシーは無効になります。 たとえば、この条件は、イベント ハブまたはログの監視オプションのみが選択されている場合に発生する可能性があります。
  • アイテム保持ポリシーは 1 日あたりに適用されます。 日の間の境界は、協定世界時 (UTC) の午前 0 時に発生します。 1 日の終わりに、アイテム保持ポリシーを超える日数のログが削除されます。 たとえば、1 日のアイテム保持ポリシーがある場合、今日の初めに、昨日より前のログが削除されます。

Monitor REST API を使用して診断ログを有効にする

診断ログを有効にするには、Monitor REST API を使用します。

Monitor REST API で診断設定を作成または更新する

依頼

PUT
https://management.azure.com/{resource-id}/providers/microsoft.insights/diagnosticSettings/service?api-version={api-version}

ヘッダー

  • {api-version} を 2016-09-01に置き換えます。
  • {resource-id}を、診断設定を編集するリソースの ID に置き換えます。 詳細については、 リソース グループを使用した Azure リソースの管理に関するページを参照してください。
  • Content-Type ヘッダーを application/jsonに設定します。
  • 承認ヘッダーを、Microsoft Entra ID から取得した JSON Web トークンに設定します。 詳細については、「 要求の認証」を参照してください。

Body

{
    "properties": {
        "storageAccountId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Storage/storageAccounts/<storageAccountName>",
        "serviceBusRuleId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>/providers/Microsoft.EventHub/namespaces/<eventHubName>/authorizationrules/RootManageSharedAccessKey",
        "workspaceId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<LogAnalyticsName>",
        "metrics": [
        ],
        "logs": [
                {
                    "category": "PipelineRuns",
                    "enabled": true,
                    "retentionPolicy": {
                        "enabled": false,
                        "days": 0
                    }
                },
                {
                    "category": "TriggerRuns",
                    "enabled": true,
                    "retentionPolicy": {
                        "enabled": false,
                        "days": 0
                    }
                },
                {
                    "category": "ActivityRuns",
                    "enabled": true,
                    "retentionPolicy": {
                        "enabled": false,
                        "days": 0
                    }
                }
            ]
    },
    "location": ""
}
財産 タイプ 説明
storageAccountId 糸 診断ログを送信するストレージ アカウントのリソース ID。
serviceBusRuleId 糸 イベント ハブを診断ログのストリーミング用に作成する場合の、service-bus 名前空間の service-bus ルール ID。 ルール ID の形式は {service bus resource ID}/authorizationrules/{key name}。
workspaceId 糸 ログが保存されるワークスペースのワークスペース ID。
メトリック 呼び出されたパイプラインに渡されるパイプライン実行のパラメーター値 パラメーター名を引数の値にマップする JSON オブジェクト。
ログ 複合型 あるリソースタイプの診断ログカテゴリ名。 リソースの診断ログ カテゴリの一覧を取得するには、GET 診断設定操作を実行します。
カテゴリー 糸 ログ カテゴリとその保持ポリシーの配列。
timeGrain 糸 ISO 8601 期間形式でキャプチャされるメトリックの粒度。 プロパティ値は、1 分を指定する PT1Mする必要があります。
有効 ブール値 このリソースに対してメトリックまたはログ カテゴリのコレクションを有効にするかどうかを指定します。
保持ポリシー 複合型 メトリックまたはログ カテゴリの保持ポリシーについて説明します。 このプロパティは、ストレージ アカウントにのみ使用されます。
日数 整数 メトリックまたはログを保持する日数。 プロパティ値が 0 の場合、ログは永続的に保持されます。 このプロパティは、ストレージ アカウントにのみ使用されます。

応答

200 OK。

{
    "id": "/subscriptions/<subID>/resourcegroups/adf/providers/microsoft.datafactory/factories/shloadobetest2/providers/microsoft.insights/diagnosticSettings/service",
    "type": null,
    "name": "service",
    "location": null,
    "kind": null,
    "tags": null,
    "properties": {
        "storageAccountId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>//providers/Microsoft.Storage/storageAccounts/<storageAccountName>",
        "serviceBusRuleId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>//providers/Microsoft.EventHub/namespaces/<eventHubName>/authorizationrules/RootManageSharedAccessKey",
        "workspaceId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>//providers/Microsoft.OperationalInsights/workspaces/<LogAnalyticsName>",
        "eventHubAuthorizationRuleId": null,
        "eventHubName": null,
        "metrics": [],
        "logs": [
            {
                "category": "PipelineRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            },
            {
                "category": "TriggerRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            },
            {
                "category": "ActivityRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            }
        ]
    },
    "identity": null
}

Monitor REST API で診断設定に関する情報を取得する

依頼

GET
https://management.azure.com/{resource-id}/providers/microsoft.insights/diagnosticSettings/service?api-version={api-version}

ヘッダー

  • {api-version} を 2016-09-01に置き換えます。
  • {resource-id}を、診断設定を編集するリソースの ID に置き換えます。 詳細については、 リソース グループを使用した Azure リソースの管理に関するページを参照してください。
  • Content-Type ヘッダーを application/jsonに設定します。
  • 承認ヘッダーを、Microsoft Entra ID から取得した JSON Web トークンに設定します。 詳細については、「 要求の認証」を参照してください。

応答

200 OK。

{
    "id": "/subscriptions/<subID>/resourcegroups/adf/providers/microsoft.datafactory/factories/shloadobetest2/providers/microsoft.insights/diagnosticSettings/service",
    "type": null,
    "name": "service",
    "location": null,
    "kind": null,
    "tags": null,
    "properties": {
        "storageAccountId": "/subscriptions/<subID>/resourceGroups/shloprivate/providers/Microsoft.Storage/storageAccounts/azmonlogs",
        "serviceBusRuleId": "/subscriptions/<subID>/resourceGroups/shloprivate/providers/Microsoft.EventHub/namespaces/shloeventhub/authorizationrules/RootManageSharedAccessKey",
        "workspaceId": "/subscriptions/<subID>/resourceGroups/ADF/providers/Microsoft.OperationalInsights/workspaces/mihaipie",
        "eventHubAuthorizationRuleId": null,
        "eventHubName": null,
        "metrics": [],
        "logs": [
            {
                "category": "PipelineRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            },
            {
                "category": "TriggerRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            },
            {
                "category": "ActivityRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            }
        ]
    },
    "identity": null
}

詳細については、「 診断設定」を参照してください。

Azure Monitor による SSIS 操作の監視