Azureの各種ログの収集先や分析基盤として利用するLog Analyticsワークスペースでは、APIを使ってログを削除することができます。今回は実際に削除を試しましたので、その手順や結果をまとめます。
Purge API
Log Analyticsワークスペースに取り込まれたデータは変更ができないようになっています。しかし、「Purge API」を利用して削除することはできます。
削除
VS Codeの拡張機能を使ってAPIを実行します。ここはお好みのやり方で実施してください。
削除ログの準備
さっそく削除していきます。今回は「CDBPartitionKeyRUConsumption」テーブルのデータを削除します。以下に2024年2月23日2時~5時の3時間の、「OperationName」ごとのデータ数を示します。ここから「Other」のデータ30件を削除したいと思います。
API実行用のアクセストークンの取得
APIを実行するための認証に使用するアクセストークンを取得します。取得方法は以下の「直接実行」に記載しています。
Purge APIの実行
2023年2月23日2時~5時の「Other」のログを削除するため、以下のようにbodyを設定します。「token」には上記で取得したアクセストークンに置き換えてください。(日時のフォーマットに注意してください。ログクエリ結果をそのまま使用するとハイフンがスラッシュだったり、一桁の数字の前に0がなかったりして形式が異なります。)
POST POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/purge?api-version=2020-08-01
Authorization: Bearer token
Content-Type: application/json
{
"table": "CDBPartitionKeyRUConsumption",
"filters":[
{
"column":"OperationName",
"operator":"==",
"value":"Other"
},
{
"column":"TimeGenerated",
"operator":">=",
"value":"2024-02-23T02:00:00"
},
{
"column":"TimeGenerated",
"operator":"<=",
"value":"2024-02-23T05:00:00"
}
]
}
問題なく実行できると、以下のように結果が返ってきます。「operationId」はこの後使用するのでメモしておきます。
HTTP/1.1 202 Accepted { "operationId": "purge-xxxxxxxxxxxxxxxxxxxxxxxxxxx" }
削除状況の確認
削除状況もAPIから確認できます。ちなみにMSのドキュメントでは、「削除操作は短時間で完了するが、SLAは30日である」との記載があります。今回試した例では、Purge API実行が完了するまで約4時間ほどかかりました。ステータスが「completed」になるまではさらにもう少し時間がかかりました。ちなみにそれまでは「pending」となります。
GET https://management.azure.com/subscriptions/f1fa317f-6c2f-45dc-8d62-0b026c1785b3/resourceGroups/rg-dev/providers/Microsoft.OperationalInsights/workspaces/log-inoue/operations/purge-430ba712-63c2-4b9a-babb-cde28fe9701b?api-version=2020-08-01
Authorization: Bearer token
HTTP/1.1 200 OK
{
"status": "completed"
}
利用シーン
「Purge API」はどのような時に利用するのでしょうか。利用シーンの1つとして紹介されているのは、個人データ(情報)を削除するときです。
ドキュメントにも記載がありますが、まずは個人情報をLog Analyticsワークスペースに送信しない、もしくはマスキング(匿名化)すべきです。しかし、諸々の事情により個人データを収集する際には、今回紹介したAPIを利用して削除を行うことができます。
コメント