次の方法で共有


データの削除 API を使用して Log Analytics ワークスペースからデータを削除する

データの削除 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 サポートされている演算子は、 ===~inin~>>=<<=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 操作の追跡」を参照してください。

次のステップ

具体的には、次の方法を学習します。