Azure LogAnalythicsワークスペースに対してログ削除の要求(AzureRESTAPI)を行う。AzureCLIを使用してcurlコマンドで削除要求を投げる。
目次
- Azure LogAnalythicsワークスペースについて
- 前提条件
- 削除リクエスト作成
- 削除の実行(Azure CLI/curl)
1. Azure LogAnalythicsワークスペースについて
一般的にログの確認を行う場合は各APIのApplication Insightから行うが、Application Insightのログは紐付いているLogAnalythicsワークスペースに集約される。
LogAnalythicsワークスペースから確認が可能なログの削除を行う。
( = LogAnalythicsワークスペースに設定されているログ保存期間を過ぎたものはこの手順では削除できない。)
2. 前提条件
- Application InsightとLogAnalythicsワークスペースのテーブルの比較参照先が明らかであること
- Application Insightのログ画面で削除対象のログが絞り込めること → LogAnalythicsワークスペースでも該当ログが確認できていること
3. 削除リクエスト作成
削除要求URIの作成
削除要求URIは 「対象LogAnalythicsワークスペースのリソースID」+「purge?api-version=yyyy-mm-dd」 の形式。
「purge?~」手前までが対象LogAnalythicsワークスペースの情報となるため、リソースIDを参照する。
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/purge?api-version=2020-08-01
リソースIDの確認方法
>対象のLogAnalythicsワークスペースを開く
>概要画面の右上、「JSONビュー」をクリック
>リソースIDが表示される
削除要求JSONの作成
基本的には削除対象を絞り込んだKQLをJSON形式にする。
{
"table": "Heartbeat",
"filters": [
{
"column": "TimeGenerated",
"operator": ">",
"value": "2017-09-01T00:00:00"
}
]
}
複数条件の場合は下記のように条件をカンマで区切る。
{
"table": "Heartbeat",
"filters": [
{
"column": "TimeGenerated",
"operator": ">",
"value": "2017-09-01T00:00:00"
},{
"column": "Properties",
"key": "UserId"
"operator": "==",
"value": "xxxx-xxxx-xxxx-xxxx-xxxx-xxxx"
}
]
}
3. 削除の実行(Azure CLI/curl)
削除要求の実行には削除権限(Data Purge Role)が必要
AzureCLIを使用してAzureにサインインする。
az login
トークン情報を取得する。
az account get-access-token
設定によっては上記手順での取得が出来ないため、その場合はAzureの認証設定周りの構成を要確認。
上記で取得したトークン、削除要求URI、削除要求JSONを使用する。
※data部分はシングルクォーテーションで囲む
curl -X POST -i
-H "Authorization:Bearer <TOKEN>"
-H "Content-Type:application/json"
-d '<JSON>' <URI>
ステータスコード202で正常応答、ボディ部は下記形式でオペレーションIDが返ってくる。
{
"operationId": "7d7cf277-9113-4ab3-8359-d0364b74d01d"
}
削除処理は削除リクエストを投げてから完了するまでに時間がかかるため、オペレーションIDを使用して状況を確認する。
確認の際は下記形式。
URIは削除要求と同様にリソースIDを参照、オペレーションIDを指定することで該当処理の状態確認を行う形。
curl -H
"Authorization:Bearer <TOKEN>"
"https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/operations/<OPERATIONID>?api-version-2020-08-01"
レスポンスは"completed"または"pending"のどちらかのみ。
削除にはかなり時間がかかる模様。
{
"status": "completed"
}
{
"status": "completed"
}
ステータスがcompletedになっていることを確認し、念のためブラウザからもログが消えていることを確認して削除完了。
リンク