Azure Monitor ログでのデータ保持とアーカイブ
[アーティクル] 04/12/2024
12 人の共同作成者
フィードバック
この記事の内容
Azure Monitor ログでは、次の 2 つの状態でデータが保持されます。
対話型保持 : 最長 2 年間の対話型クエリ について分析ログを保持できます。
アーカイブ : ワークスペース内の使用頻度の低い前のデータをより低コストで保持できます。 検索ジョブ と復元 を使用すると、アーカイブ状態のデータにアクセスできます。 アーカイブ状態のデータを最長 12 年間保持できます。
この記事では、データ保持とアーカイブの構成方法について説明します。
保持およびアーカイブの機能
各ワークスペースには、すべてのテーブルに適用される既定の保持設定があります。 個々のテーブルに別々の保持設定を構成できます。
対話型保持期間中は、監視、トラブルシューティング、分析にデータを使用できます。 ログを使用しなくなったが、コンプライアンスや不定期の調査のためにデータを保持する必要がある場合は、ログをアーカイブすることでコストを節約できます。
アーカイブされたデータは、対話型クエリで使用できるデータと共に、同じテーブルに保持されます。 対話型保持期間より長い合計保持期間を設定すると、Log Analytics は、保持期間の終了時に直ちに関連するデータを自動的にアーカイブします。
アーカイブされたデータには、検索ジョブを実行するか 、アーカイブされたログを復元することで アクセスできます。
注意
アーカイブ期間は、ワークスペース レベルではなく、テーブル レベルでのみ設定できます。
保持とアーカイブの設定の調整
既存の保持設定を短くした場合、Azure Monitor では、30 日間待ってからそのデータが削除されます。そのため、構成に誤りがあった場合にはその変更内容を元に戻してデータ損失を防ぐことができます。 必要であれば、すぐにデータを消去 できます。
保持設定を長くした場合、新しい保持期間は、既にテーブルに取り込まれた、まだ消去も削除もされていないすべてのデータに適用されます。
既存のデータを含むテーブルのアーカイブ設定を変更すると、テーブル内の関連データもすぐに影響を受けます。 たとえば、対話型保持期間が180 日間で、アーカイブ期間のない既存のテーブルがあるとします。 合計保持期間である 180 日間を変更せずに保持設定を 90 日間の対話型保持に変更することにしました。 Log Analytics では、90 日を超えるデータが直ちにアーカイブされ、どのデータも削除されません。
Log Analytics ワークスペース内のテーブルを削除したときにデータがどうなるか
Log Analytics ワークスペースには、複数の種類のテーブル を含めることができます。 テーブルを削除するとどうなるかは、それぞれ場合によって異なります。
テーブルの種類です。
データ保持
推奨事項
Azure テーブル
Azure テーブルは、Azure リソースからのログや Azure サービスまたはソリューションに必要なデータを保持しているため、削除できません。 リソース、サービス、またはソリューションからのデータのストリーミングを停止すると、データは、テーブルに対して定義された保有期間が終了するまで、またはテーブル レベルの保有期間が定義されていない場合は、既定のワークスペースの保有期間が終了するまで、ワークスペースに残ります。
料金を最小限に抑えるには、テーブル レベルの保有期間 を 4 日間に設定してから、テーブルへのログのストリーミングを停止します。
復元されたテーブル (table_RST
)
復元用にプロビジョニングされたホット キャッシュを削除しますが、ソース テーブル データは削除されません。
検索結果テーブル (table_SRCH
)
テーブルとデータを即時かつ完全に削除します。
カスタム ログ テーブル (table_CL
)
テーブル レベルの保有期間または既定のワークスペースの保有期間が終了するまで、テーブルが論理的に削除されます。 論理的な削除期間中は、引き続きデータ保持料金を支払い、同じ名前とスキーマを持つテーブルを設定することで、テーブルを再作成してデータにアクセスできます。 カスタム テーブルを削除してから 14 日後、Azure Monitor はテーブル レベルの保有期間の構成を削除し、既定のワークスペースの保有期間を適用します。
料金を最小限に抑えるには、テーブル レベルの保有期間 を 4 日間に設定してから、テーブルを削除します。
必要なアクセス許可
アクション
必要なアクセス許可
Log Analytics ワークスペースのデータ保持ポリシーとアーカイブ ポリシーを構成する
たとえば、Log Analytics 共同作成者組み込みロール によって提供される、Log Analytics ワークスペースに対する Microsoft.OperationalInsights/workspaces/write
および microsoft.operationalinsights/workspaces/tables/write
権限
Log Analytics ワークスペースのテーブル別の保持ポリシーとアーカイブ ポリシーを取得する
たとえば、Log Analytics 閲覧者組み込みロール によって提供される、Log Analytics ワークスペースに対する Microsoft.OperationalInsights/workspaces/tables/read
権限
Log Analytics ワークスペースからデータを削除する
たとえば、Log Analytics 共同作成者組み込みロール によって提供される、Log Analytics ワークスペースに対する Microsoft.OperationalInsights/workspaces/purge/action
権限
Azure portal で Log Analytics ワークスペースの保持の既定値を 30、31、60、90、120、180、270、365、550、730 日に設定できます。 テーブル レベルで保持とアーカイブを構成する と、特定のテーブルに別の設定を適用できます。 無料 プランをご利用の場合は、有料プランにアップグレードしてデータ保持期間を変更する必要があります。
重要
30 日間の保有期間が設定されているワークスペースでは、データが 31 日間保持される場合があります。 プライバシー ポリシーに準拠するためにのみデータを 30 日間を保持する必要がある場合は、API を使用して既定のワークスペースの保有期間を 30 日間に構成し、ワークスペースの immediatePurgeDataOn30Days
プロパティを true
に更新します。 現在、この操作は Workspaces - Update API を使用した場合にのみサポートされます。
既定のワークスペース保持を設定するには:
Azure portal の [Log Analytics ワークスペース] メニューからワークスペースを選択します。
左側のウィンドウから [使用量と推定コスト] を選択します。
ページの上部にある [データ保持] を選択します。
スライダーを動かして日数を増減してから、[OK] を選択します。
テーブルの保持期間とアーカイブ期間を設定するには、Workspaces - Create Or Update API を呼び出します。
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}?api-version=2023-09-01
要求本文
要求本文には、次の票の値が含まれています。
Name
種類
Description
properties.retentionInDays
integer
ワークスペースのデータ保有期間 (日数)。 使用できる値は価格プランごとになります。 詳細については、価格レベル ドキュメントを参照してください。
location
string
リソースの地理的な場所。
immediatePurgeDataOn30Days
boolean
データが 30 日後に直ちに削除され、回復不可能かどうかを示すフラグ。 ワークスペースの保有期間が 30 日間に設定されている場合にのみ適用されます。
例
次の例では、ワークスペースの保有期間をワークスペースの既定の 30 日間に設定し、データが 30 日後に直ちに削除され、回復不可能であることを確認します。
Request
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}?api-version=2023-09-01
{
"properties": {
"retentionInDays": 30,
"features": {"immediatePurgeDataOn30Days": true}
},
"location": "australiasoutheast"
}
**Response**
Status code: 200
```http
{
"properties": {
...
"retentionInDays": 30,
"features": {
"legacy": 0,
"searchVersion": 1,
"immediatePurgeDataOn30Days": true,
...
},
...
テーブルの保持期間とアーカイブ期間を設定するには、az monitor log-analytics workspace table update コマンドを実行し、--retention-time
パラメーターを渡します。
この例では、テーブルの対話型保持期間を 30 日に設定し、合計保持期間を 2 年に設定します。これは、アーカイブ期間が 23 か月であることを意味します。
az monitor log-analytics workspace update --resource-group myresourcegroup --retention-time 30 --workspace-name myworkspace
Set-AzOperationalInsightsWorkspace コマンドレットを使用し、ワークスペースの保持期間を設定します。 この例では、ワークスペースの保持期間を 30 日に設定します。
Set-AzOperationalInsightsWorkspace -ResourceGroupName "myResourceGroup" -Name "MyWorkspace" -RetentionInDays 30
既定では、ワークスペース内のすべてのテーブルに、そのワークスペースの対話型保持設定が継承され、アーカイブはありません。 従来の無料試用版価格プランのワークスペースを除き、個々のテーブルについて保持設定とアーカイブ設定を変更できます。
Analytics ログ データ プランには、現行世代の価格レベル (従量課金制レベルとコミットメント レベルに加え、従来のスタンドアロン レベルとノード単位レベル) のワークスペースの 31 日間の対話型保持期間が含まれています。 対話型保持期間は、追加コスト により最大 730 日まで増やすことができます。 必要な場合は、API または CLI を使用して対話型保持の期間を 4 日間まで短くできます。 ただし、インジェスト価格には 31日間の対話型保持期間が含まれているため、保持期間を 31日間より短くしてもコストは下がりません。 アーカイブ期間の合計保持期間は、最長 4,383 日 (12 年) に設定できます。
Note
現在、Azure portal と API を使用して、合計リテンション期間を最大 12 年に設定できます。 CLI と PowerShell は 7 年に制限されています。12年間のサポートが、後日提供される予定です。
テーブルの保持期間とアーカイブ期間を設定するには、Azure portal を呼び出 します:
[Log Analytics ワークスペース] メニューから [テーブル] を選択します。
[テーブル] 画面には、ワークスペース内のすべてのテーブルが一覧表示されます。
構成するテーブルのコンテキスト メニューを選択し、[テーブルの管理] を選択します。
テーブル構成画面の [データ保持設定] セクションで、保持期間とアーカイブ期間を構成します。
テーブルの保持期間とアーカイブ期間を設定するには、Tables - Update API を呼び出 します。
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}?api-version=2022-10-01
注意
API 呼び出しでアーカイブ期間を明示的に指定する必要はありません。 代わりに、対話型保持期間の合計である合計保持期間とアーカイブ期間を設定します。
PUT または PATCH を使用できます。違いは次のとおりです。
null 以外の値を設定しない場合、PUT API は retentionInDays
と totalRetentionInDays
を既定値に設定します。
値を指定しない場合、PATCH API は retentionInDays
または totalRetentionInDays
の値を変更しません。
要求本文
要求本文には、次の票の値が含まれています。
Name
種類
説明
properties.retentionInDays
整数 (integer)
テーブルのデータ保有期間 (日数)。 この値の範囲は 4 から 730 です。 このプロパティを null 値 に設定すると、ワークスペースの保持期間に適用されます。 Basic Logs テーブルの場合、値は常に 8 です。
properties.totalRetentionInDays
整数 (integer)
アーカイブ期間を含むテーブルの合計データ保持期間 この値は、4 から 730、または 1095、1460、1826、2191、2556、2922、3288、3653、4018、4383 です。 データをアーカイブしない場合は、このプロパティを null に設定します。
例
この例では、テーブルの対話型保持期間をワークスペースの既定値の 30 日に設定し、合計保持期間を 2 年に設定します。これは、アーカイブ期間が 23 か月であることを意味します。
Request
PATCH https://management.azure.com/subscriptions/00000000-0000-0000-0000-00000000000/resourcegroups/testRG/providers/Microsoft.OperationalInsights/workspaces/testWS/tables/CustomLog_CL?api-version=2022-10-01
要求本文
{
"properties": {
"retentionInDays": null,
"totalRetentionInDays": 730
}
}
応答
状態コード:200
{
"properties": {
"retentionInDays": 30,
"totalRetentionInDays": 730,
"archiveRetentionInDays": 700,
...
},
...
}
テーブルのリテンション期間とアーカイブ期間を設定するには、 az monitor log-analytics workspace table update コマンドを実行し、 --retention-time
パラメーターと --total-retention-time
パラメーターを渡します。
この例では、テーブルの対話型保持期間を 30 日に設定し、合計保持期間を 2 年に設定します。これは、アーカイブ期間が 23 か月であることを意味します。
az monitor log-analytics workspace table update --subscription ContosoSID --resource-group ContosoRG --workspace-name ContosoWorkspace --name AzureMetrics --retention-time 30 --total-retention-time 730
ワークスペースの既定の対話型リテンション期間の値をテーブルに再適用し、合計リテンション期間を 0 にリセットするには、--retention-time
パラメーターと --total-retention-time
パラメーターを -1
に設定して、az monitor log-analytics workspace table update コマンドを実行します。
次に例を示します。
az monitor log-analytics workspace table update --subscription ContosoSID --resource-group ContosoRG --workspace-name ContosoWorkspace --name Syslog --retention-time -1 --total-retention-time -1
Update-AzOperationalInsightsTable コマンドレットを使用して、テーブルの保持期間とアーカイブ期間を設定します。 この例では、テーブルの対話型保持期間を 30 日に設定し、合計保持期間を 2 年に設定します。これは、アーカイブ期間が 23 か月であることを意味します。
Update-AzOperationalInsightsTable -ResourceGroupName ContosoRG -WorkspaceName ContosoWorkspace -TableName AzureMetrics -RetentionInDays 30 -TotalRetentionInDays 730
ワークスペースの既定の対話型保持値をテーブルに再適用し、合計保持を 0 にリセットするには、-RetentionInDays
および -TotalRetentionInDays
パラメータを -1
に設定して Update-AzOperationalInsightsTable コマンドレットを実行します。
次に例を示します。
Update-AzOperationalInsightsTable -ResourceGroupName ContosoRG -WorkspaceName ContosoWorkspace -TableName Syslog -RetentionInDays -1 -TotalRetentionInDays -1
テーブル別に保持設定とアーカイブ設定を取得する
Azure portal のテーブルの保持期間とアーカイブ期間を表示するには、[Log Analytics ワークスペース] メニューから [テーブル] を選択します。
[テーブル] 画面には、ワークスペース内のすべてのテーブルの対話型保持およびアーカイブ期間が表示されます。
特定のテーブル (この例では SecurityEvent
) の保持設定を取得するには、Tables - Get API を呼び出します。
GET /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/Microsoft.OperationalInsights/workspaces/MyWorkspaceName/Tables/SecurityEvent?api-version=2022-10-01
ワークスペース内のテーブルレベルの保持設定をすべて取得するには、テーブル名を設定しないでください。
次に例を示します。
GET /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/Microsoft.OperationalInsights/workspaces/MyWorkspaceName/Tables?api-version=2022-10-01
特定のテーブルの保持設定を取得するには、az monitor log-analytics workspace table show コマンドを実行します。
次に例を示します。
az monitor log-analytics workspace table show --subscription ContosoSID --resource-group ContosoRG --workspace-name ContosoWorkspace --name SecurityEvent
特定のテーブルの保持設定を取得するには、Get-AzOperationalInsightsTable コマンドレットを実行します。
次に例を示します。
Get-AzOperationalInsightsTable -ResourceGroupName ContosoRG -WorkspaceName ContosoWorkspace -tableName SecurityEvent
一意の保持期間が設定されたテーブル
既定では、2 つのデータ種類 (Usage
と AzureActivity
) は、少なくとも 90 日間無料でデータを保持します。 ワークスペースの保持期間が 90 日を超えた場合、これらのデータの種類の保持期間も長くなります。 これらのテーブルも、データ インジェスト料金の対象になりません。
Application Insights リソースに関連するテーブルでも、データは 90 日間無料で保持されます。 これらの各テーブルの保持は個別に調整できます。
AppAvailabilityResults
AppBrowserTimings
AppDependencies
AppExceptions
AppEvents
AppMetrics
AppPageViews
AppPerformanceCounters
AppRequests
AppSystemEvents
AppTraces
価格モデル
アーカイブされたログの保持に対する料金は、アーカイブしたデータの量 (GB 単位) と、データをアーカイブした日数に基づいて計算されます。 _IsBillable == false
を含むログ データは、保持またはアーカイブの料金の対象になりません。
詳細については、「Azure Monitor の価格 」を参照してください。
次のステップ
各項目の詳細情報