データの削除 API を使用すると、機密、個人、破損、または正しくないログ エントリなどのデータを削除できます。
この記事では、データの削除 API を呼び出して、Log Analytics ワークスペース内の特定のテーブルからログ エントリを削除する方法について説明します。
データ削除 API のしくみ
データの削除 API は、個々のレコードの計画外の削除に最適です。 たとえば、破損したテレメトリ データがワークスペースに取り込まれたことが判明し、クエリ結果が歪むのを防ぐ必要がある場合などです。 データの削除 API は、指定されたフィルター条件を満たすレコードを、ストレージから物理的に削除せずに削除済みとしてマークします。
削除するテーブルの行を指定するには、API 呼び出しの本文で 1 つ以上のフィルターを送信します。
削除プロセスは最終的であり、元に戻すことはできません。 そのため、API を呼び出す前に、Kusto クエリ言語 (KQL) where
演算子を使用して、ワークスペースでクエリを実行して、フィルターによって目的の結果が生成されることを確認します。
たとえば、AzureMetrics
値に基づいてTimeGenerated
テーブルからデータを削除するには、次のようにします。
このフィルターは、API 呼び出しの本文で送信できます。
{ "filters": [ { "column": "TimeGenerated", "operator": "==", "value": "2024-09-23T00:00:00" } ] }
Log Analytics ワークスペースで次のクエリを実行して、削除するエントリがフィルターによって返されることを確認します。
AzureMetrics | where TimeGenerated == "2024-09-23T00:00:00"
削除データ要求は非同期であり、通常は数分以内に完了します。 極端な場合、要求は最大 5 日間キューに入れられます。
Log Analytics ワークスペースでワークスペースのレプリケーション を有効にすると、API 呼び出しによってプライマリ ワークスペースとセカンダリ ワークスペースの両方からデータが削除されます。
必要なアクセス許可
アクション | 必要なアクセス許可 |
---|---|
Log Analytics ワークスペース内のテーブルからデータを削除する | たとえば、Log Analytics ワークスペースに対する権限は、Microsoft.OperationalInsights/workspaces/tables/deleteData/action によって提供されます。 |
考慮事項
- 1 つの Log Analytics ワークスペースで、1 時間あたり最大 10 個のデータ削除要求を送信できます。
- データの削除 API は、Analytics プランのデータに対して動作します。 Basic プランを含むテーブルからデータを削除するには、プランを Analytics に変更し、データを削除します。 補助プランはサポートされていません。
Delete Data API を呼び出して特定のテーブルからデータを削除する
テーブルから行を削除するには、次のコマンドを使用します。
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace_name}/tables/{table_name}/deleteData?api-version=2023-09-01
Authorization: Bearer eyJ0e...
API 呼び出しの本文で 1 つ以上のフィルターを指定します。 次の例では、 TimeGenerated
列と Resource
列をフィルター処理します。
{
"filters": [
{
"column": "TimeGenerated",
"operator": "==",
"value": "2024-09-23T00:00:00"
},
{
"column": "Resource",
"operator": "==",
"value": "VM-1"
}
]
}
フィルター パラメーター
名前 | 説明 |
---|---|
column |
フィルターを適用する対象テーブル内の列の名前。 |
operator |
サポートされている演算子は、 == 、 =~ 、 in 、 in~ 、 > 、 >= 、 < 、 <= 、 between です。 |
value |
フィルター処理の対象となる値 (サポートされている形式)。 値には、列に応じて、特定の日付、文字列、またはその他のデータ型を指定できます。 |
応答
[応答] | 説明 |
---|---|
202 (承認済み) | 非同期要求が正常に受信されました。 操作が成功したか失敗したかを確認するには、応答ヘッダーに指定された Azure-AsyncOperation URL を使用します。 |
その他の状態コード | 操作が失敗した理由を説明するエラー応答。 |
データの削除操作と状態を確認する
Azure アクティビティ ログを使用して、ワークスペース内のデータ削除アクティビティを追跡できます。 Azure portal 内の Log Analytics ワークスペース メニューで、[ アクティビティ ログ ] を選択し、 Log Analytics ワークスペース イベントから [データの削除] を 見つけます。 イベントを選択し、削除されたレコードの数、呼び出し元、メッセージなどの詳細を JSON 形式で開きます。
操作の状態を確認し、削除されたレコードの数を表示するには、応答ヘッダーに指定された Azure-AsyncOperation
URL を含む GET 要求を送信します。
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.OperationalInsights/locations/{region}/operationstatuses/{responseOperation}?api-version=2023-09-01
Authorization: Bearer eyJ0e...
応答
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.OperationalInsights/locations/eastus/operationstatuses/00000000-0000-0000-0000-000000001234",
"name": "00000000-0000-0000-0000-000000001234",
"status": "Succeeded",
"startTime": "2024-11-04T09:31:41.689659Z",
"endTime": "2024-11-04T09:36:49.0252644Z",
"properties": {
"RecordCount": 234812,
"Status": "Completed"
}
}
詳細については、「 非同期 Azure 操作の追跡」を参照してください。
次のステップ
具体的には、次の方法を学習します。