Log Analytics ワークスペースは、以下の 2 つの状態でデータを保持します。
-
Analytics のデータ保持: この状態では、データは監視、トラブルシューティング、ほぼリアルタイムの分析に使用できます。
-
長期保持: この低コストの状態では、データをテーブル プラン機能で利用することはできませんが、検索ジョブを通してアクセスすることはできます。
この記事では、Log Analytics ワークスペースがどのようにデータを保持するのかと、ワークスペース内のテーブルのデータ保持を管理する方法について説明します。
Analytics、長期、および合計の保持期間
既定では、Log Analytics ワークスペース内のすべてのテーブルは、90 日間の既定の保持期間をもつ長期テーブルを除き、データを 30 日間保持します。 Analytics プランを含むテーブルを使用すると、この Analytics のデータ保持期間中にリアルタイム クエリでデータを使用できるようになります。 すべてのテーブル プランでは、クエリまたは検索ジョブを使用して格納されたデータを取得でき、テーブル プランに基づいて視覚化、アラート、その他の機能やサービスにそのデータを使用できます。
Analytics プランでは、テーブルの Analytics のデータ保持期間を最長 2 年間にまで延長できます。 Basic プランのテーブルではクエリの期間は 30 日間に固定されていますが、補助プランのテーブルは合計保持期間中、クエリを実行できます。 ただし、Basic テーブルと補助テーブルの両方に追加の考慮事項があります。 詳細については、Basic テーブルと補助テーブルのデータのクエリに関する記事を参照してください。
注
API または CLI を使用すると、Analytics テーブルの Analytics のデータ保持期間を最短 4 日間にまで短縮できます。 ただし、インジェスト価格には 31 日間の Analytics のデータ保持期間が含まれるため、保持期間を 31 日未満に下げてもコストは削減されません。
既定の保持期間を超えて同じテーブルにデータを保持するには、テーブルの合計保持期間を最長で 12 年間に延長します。 Analytics のデータ保持期間が終了すると、データは構成した合計保持期間の残りの期間、テーブルに残ります。 この期間 (長期保持期間) 中は、検索ジョブを実行して、必要な特定のデータをテーブルから取得し、検索結果テーブル内の対話型クエリで利用できるようにします。
保持期間変更のしくみ
テーブルの合計保持期間を短縮すると、Azure Monitor ログはデータの削除まで 30 日間の猶予を設けるため、構成で間違った場合は変更を元に戻しデータの喪失を防ぐことができます。
合計保持期間を増やすと、新しい保持期間は、テーブルに取り込み済みでまだ削除されていないすべてのデータに適用されます。
既存のデータを含むテーブルの長期保持設定を変更すると、その変更はすぐに有効になります。
Example:
- Analytics のデータ保持期間が 180 日間あり、長期の保持期間がない既存の Analytics テーブルがあります。
- 合計保持期間を 180 日間に変更せずに、Analytics のデータ保持期間を 90 日間に変更します。
- Azure Monitor は、経過時間が 90 日から 180 日間のデータが失われないように、合計保持期間の残り 90 日間を自動的に低コストな長期保持期間として扱います。
必要なアクセス許可
| アクション |
必要なアクセス許可 |
| Log Analytics ワークスペースの Analytics テーブルの既定の Analytics のデータ保持期間を構成する |
Microsoft.OperationalInsights/workspaces/writeによって提供される、Log Analytics ワークスペースに対する microsoft.operationalinsights/workspaces/tables/write および アクセス許可などです |
| Log Analytics ワークスペースでテーブルごとに保持設定を取得する |
たとえば、Microsoft.OperationalInsights/workspaces/tables/readによって提供される、Log Analytics ワークスペースに対する アクセス許可 |
Log Analytics ワークスペース内の Analytics テーブルの既定の保持期間は 30 日間です。 ワークスペース レベルのデータ保持設定を変更することで、Analytics テーブルの既定の分析期間を最長 2 年間にまで変更できます。 Basic テーブルと補助テーブルには、合計保持期間のみがあり、既定では 30 日間です。
既定のワークスペースレベルのデータ保持設定の変更は、ワークスペース内の既定の設定がまだ適用されているすべての Analytics テーブルに自動的に影響します。 特定のテーブルの Analytics のデータ保持期間を既に変更している場合、ワークスペースの既定のデータ保持設定を変更しても、そのテーブルは影響を受けません。
重要
30 日間の保持期間が設定されているワークスペースでは、データが 31 日間保持される場合があります。 プライバシー ポリシーに準拠するためにのみデータを 30 日間を保持する必要がある場合は、API を使用して既定のワークスペースの保有期間を 30 日間に構成し、ワークスペースの immediatePurgeDataOn30Days プロパティを true に更新します。 現在、この操作は Workspaces - Update API を使用した場合にのみサポートされます。
次の例では、テーブルの対話型リテンション期間を 30 日に設定します。
Log Analytics ワークスペース内の Analytics テーブルの既定の Analytics のデータ保持期間を設定するには次のようにします。
Azure portal の [Log Analytics ワークスペース] メニューからワークスペースを選択します。
[設定] セクションの左側ペインにある [使用とコストの見積もり] を選びます。
ページの上部にある [データ保持] を選択します。
スライダーを動かして日数を増減してから、[OK] を選択します。
次のAzure CLI例では、az monitor log-analytics workspace update コマンドを使用します。
--retention-time パラメーターを使用して、Log Analytics ワークスペース内の Analytics テーブルの既定の対話型保持期間を設定します。
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
retentionInDays="30"
# Update the default workspace retention
az monitor log-analytics workspace update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--retention-time "$retentionInDays"
注
Azure CLIコマンドは現在の CLI コンテキストからAzure Resource Manager エンドポイントを使用するため、コマンド構文で management.azure.com を指定する必要はありません。
次のAzure PowerShell例では、Set-AzOperationalInsightsWorkspace コマンドレットを使用します。
-RetentionInDays パラメーターを使用して、Log Analytics ワークスペース内の Analytics テーブルの既定の対話型保持期間を設定します。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$retentionInDays = "30"
# Define parameters for Set-AzOperationalInsightsWorkspace
$setAzOperationalInsightsWorkspaceParams = @{
ResourceGroupName = $resourceGroupName
Name = $workspaceName
RetentionInDays = $retentionInDays
}
# Update the default workspace retention
Set-AzOperationalInsightsWorkspace @setAzOperationalInsightsWorkspaceParams
注
Azure PowerShellコマンドレットは現在の Az コンテキストからAzure Resource Manager エンドポイントを使用するため、コマンドレット構文で management.azure.com を指定する必要はありません。
次の REST の例では、 ワークスペース - REST API の更新操作を使用します。 Log Analytics ワークスペース内の Analytics テーブルの既定の対話型リテンション期間を設定します。
また、30 日後にデータが直ちに削除され、回復不可能になります。
PATCH https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{WorkspaceName}?api-version=2025-07-01
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"properties": {
"retentionInDays": 30,
"features": {
"immediatePurgeDataOn30Days": true
}
}
}
要求本文のプロパティ:
要求本文には、次の票の値が含まれています。
| 名前 |
タイプ |
説明 |
properties.retentionInDays |
整数 |
ワークスペースのデータ保有期間 (日数)。 使用できる値は価格プランごとになります。 詳細については、価格レベル ドキュメントを参照してください。 |
properties.features.immediatePurgeDataOn30Days |
ブーリアン |
データが 30 日後に直ちに削除され回復不可能になるかどうかを示すフラグ。 ワークスペースの保有期間が 30 日間に設定されている場合にのみ適用されます。 |
応答の例:
状態コード: 200
{
"properties": {
"retentionInDays": 30,
"features": {
"legacy": 0,
"searchVersion": 1,
"immediatePurgeDataOn30Days": true
}
}
}
次の Bicep の例では、Microsoft.OperationalInsights workspaces リソース タイプを使用します。 Log Analytics ワークスペース内の Analytics テーブルの既定の対話型リテンション期間を設定します。
param workspaceName string = '<WorkspaceName>'
param azureRegion string = '<AzureRegion>'
param retentionInDays int = 30
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = {
name: workspaceName
location: azureRegion
properties: {
retentionInDays: retentionInDays
}
}
次の ARM (JSON) の例では、Microsoft.OperationalInsights workspaces リソースの種類を使用します。 Log Analytics ワークスペース内の Analytics テーブルの既定の対話型リテンション期間を設定します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"retentionInDays": {
"type": "int",
"defaultValue": 30
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]",
"location": "[parameters('azureRegion')]",
"properties": {
"retentionInDays": "[parameters('retentionInDays')]"
}
}
]
}
既定では、Analytics データ プランを持つすべてのテーブルは、Log Analytics ワークスペースの既定の保持設定を継承し、長期の保持期間はありません。
追加コストで、Analytics テーブルの Analytics のデータ保持期間を最長 730 日間にまで増やすことができます。
何らかのデータ プランを持つテーブルに長期保持期間を追加するには、合計保持期間を最大 12 年 (4,383 日) に設定します。
注
現在、Azure portal と API を使用して、合計リテンション期間を最大 12 年に設定できます。 CLI と PowerShell は 7 年に制限されています。12年間のサポートが、後日提供される予定です。
次の例では、テーブルの対話型リテンション期間を 30 日に設定し、合計リテンション期間を 2 年 (730 日) に設定します。つまり、長期保有期間は 23 か月です。
Azure portal でテーブルの保持設定を変更するには:
[Log Analytics ワークスペース] メニューから [テーブル] を選択します。
[テーブル] 画面には、ワークスペース内のすべてのテーブルが一覧表示されます。
構成するテーブルのコンテキスト メニューを選択し、[テーブルの管理] を選択します。
テーブル構成画面の [データ保存設定] セクションで、Analytics のデータ保持期間と合計保持期間の設定を構成します。
次のAzure CLI例では、az monitor log-analytics workspace table update コマンドを使用します。
--retention-timeパラメーターと--total-retention-time パラメーターを使用して、特定のテーブルの保持設定を変更します。
カスタムリテンション期間を設定します。
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
tableName="<TableName>"
retentionInDays="30"
totalRetentionInDays="730"
# Update the table retention settings
az monitor log-analytics workspace table update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName" \
--retention-time "$retentionInDays" \
--total-retention-time "$totalRetentionInDays"
ワークスペースの既定値にリセットします。
ワークスペースの既定の保持値をテーブルに再適用し、その合計保持期間を 0 にリセットするには、 パラメーターと --retention-time パラメーターを --total-retention-time に設定して -1 コマンドを実行します。
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
tableName="<TableName>"
retentionInDays="-1"
totalRetentionInDays="-1"
# Update the table retention settings
az monitor log-analytics workspace table update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName" \
--retention-time "$retentionInDays" \
--total-retention-time "$totalRetentionInDays"
次のAzure PowerShell例では、Update-AzOperationalInsightsTable コマンドレットを使用します。
-RetentionInDaysパラメーターと-TotalRetentionInDays パラメーターを使用して、特定のテーブルの保持設定を変更します。
カスタムリテンション期間を設定します。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$tableName = "<TableName>"
$retentionInDays = "30"
$totalRetentionInDays = "730"
# Define parameters for Update-AzOperationalInsightsTable
$updateAzOperationalInsightsTableParams = @{
ResourceGroupName = $resourceGroupName
WorkspaceName = $workspaceName
TableName = $tableName
RetentionInDays = $retentionInDays
TotalRetentionInDays = $totalRetentionInDays
}
# Update the table retention settings
Update-AzOperationalInsightsTable @updateAzOperationalInsightsTableParams
ワークスペースの既定値にリセットします。
ワークスペースの既定の保持値をテーブルに再適用し、合計保持を 0 にリセットするには、 パラメーターと -RetentionInDays パラメーターを -TotalRetentionInDays に設定して -1 コマンドレットを実行します。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$tableName = "<TableName>"
$retentionInDays = "-1"
$totalRetentionInDays = "-1"
# Define parameters for Update-AzOperationalInsightsTable
$updateAzOperationalInsightsTableParams = @{
ResourceGroupName = $resourceGroupName
WorkspaceName = $workspaceName
TableName = $tableName
RetentionInDays = $retentionInDays
TotalRetentionInDays = $totalRetentionInDays
}
# Update the table retention settings
Update-AzOperationalInsightsTable @updateAzOperationalInsightsTableParams
次の REST の例では、 テーブル - REST API の更新 操作を使用します。 特定のテーブルの保持設定が変更されます。
PUT または PATCH を使用できます。違いは次のとおりです。
- null 以外の値を設定しない場合、PUT API は
retentionInDays と totalRetentionInDays を既定値に設定します。
- 値を指定しない場合、PATCH API は
retentionInDays または totalRetentionInDays の値を変更しません。
PATCH https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{WorkspaceName}/tables/{TableName}?api-version=2025-07-01
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"properties": {
"retentionInDays": 30,
"totalRetentionInDays": 730
}
}
要求本文のプロパティ:
要求本文には、次の票の値が含まれています。
| 名前 |
タイプ |
説明 |
properties.retentionInDays |
整数 |
テーブルのデータ保有期間 (日数)。 この値の範囲は 4 から 730 です。 このプロパティを null 値 に設定すると、ワークスペースの保持期間に適用されます。 Basic および Auxiliary ログ テーブルの場合、この値は常に 30 です。 |
properties.totalRetentionInDays |
整数 |
長期保持期間を含むテーブルの合計データ保持期間。 この値は、4 から 730、または 1095、1460、1826、2191、2556、2922、3288、3653、4018、4383 です。 長期保持期間が必要ない場合は、このプロパティを null に設定します。 |
応答の例:
状態コード: 200
{
"properties": {
"retentionInDays": 30,
"totalRetentionInDays": 730,
"archiveRetentionInDays": 700,
},
}
次の Bicep の例では、Microsoft.OperationalInsights workspaces/tables リソースの種類を使用します。 特定のテーブルの保持設定が変更されます。
param workspaceName string = '<WorkspaceName>'
param tableName string = '<TableName>'
param retentionInDays int = 30
param totalRetentionInDays int = 730
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' existing = {
name: workspaceName
}
resource workspaceTable 'Microsoft.OperationalInsights/workspaces/tables@2025-07-01' = {
parent: logAnalyticsWorkspace
name: tableName
properties: {
retentionInDays: retentionInDays
totalRetentionInDays: totalRetentionInDays
}
}
次の ARM (JSON) の例では、Microsoft.OperationalInsights workspaces/tables リソース タイプを使用します。 特定のテーブルの保持設定が変更されます。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"tableName": {
"type": "string",
"defaultValue": "<TableName>"
},
"retentionInDays": {
"type": "int",
"defaultValue": 30
},
"totalRetentionInDays": {
"type": "int",
"defaultValue": 730
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces/tables",
"apiVersion": "2025-07-01",
"name": "[format('{0}/{1}', parameters('workspaceName'), parameters('tableName'))]",
"properties": {
"retentionInDays": "[parameters('retentionInDays')]",
"totalRetentionInDays": "[parameters('totalRetentionInDays')]"
}
}
]
}
テーブルごとに保持設定を取得する
Azure portal でテーブルの保持設定を表示するには、[Log Analytics ワークスペース] メニューから [テーブル] を選択します。
[テーブル] 画面に、ワークスペース内のすべてのテーブルの Analytics のデータ保持期間と合計保持期間が表示されます。
次のAzure CLI例では、az monitor log-analytics workspace table show コマンドを使用します。 特定のテーブルの保持設定を取得します。
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
tableName="<TableName>"
# Retrieve the table retention settings
az monitor log-analytics workspace table show \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--name "$tableName"
次のAzure PowerShell例では、Get-AzOperationalInsightsTable コマンドレットを使用します。 特定のテーブルの保持設定を取得します。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$tableName = "<TableName>"
# Define parameters for Get-AzOperationalInsightsTable
$getAzOperationalInsightsTableParams = @{
ResourceGroupName = $resourceGroupName
WorkspaceName = $workspaceName
TableName = $tableName
}
# Retrieve the table retention settings
Get-AzOperationalInsightsTable @getAzOperationalInsightsTableParams
次の REST の例では、 Tables - Get REST API 操作を使用します。 特定のテーブルの保持設定を取得します。
GET https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{WorkspaceName}/tables/{TableName}?api-version=2025-07-01
Authorization: Bearer {AccessToken}
ワークスペース内のテーブルレベルの保持設定をすべて取得するには、テーブル名を設定しないでください。
GET https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{WorkspaceName}/tables?api-version=2025-07-01
Authorization: Bearer {AccessToken}
Log Analytics ワークスペース内のテーブルを削除したときにデータに何が起こるか?
Log Analytics ワークスペースには、複数の種類のテーブルを含めることができます。 テーブルを削除するとどうなるかは、それぞれ場合によって異なります。
| テーブルの種類です。 |
データの保持 |
推奨事項 |
復元 |
| Azure テーブル |
Azure テーブルには、Azure リソースまたはソリューションのログが保持されます。 リソースまたはソリューションからのデータの送信を停止すると、テーブルに対して定義された保持期間が終了するまでデータはワークスペースに残り、それに応じて課金されます。 |
料金を削減するには、テーブル レベルの保持期間を、サポートされる最短期間である 4 日間に設定します。 削除するテーブルが、削除する必要があるソリューション (Sentinel など) に関連付けられている場合は、4 日間の保持期間が経過した後にソリューションを削除します。 |
ソリューションを有効にします。 データ復旧には、テーブルのリテンション期間が適用されます。 |
カスタム ログ テーブル (table_CL) |
カスタム ログ テーブルには、 ログ インジェスト API または HTTP データ コレクター API (非推奨) からのログが保持されます。 テーブルを削除しても、テーブル名は 15 日間予約されたままになります。
Analytics プランまたは Basic プランでテーブルを削除しても、データは削除されません。 テーブルの保持期間は、15 日後にワークスペースの保持期間に設定されます。この場合、保持料金はテーブルの保持期間に従います。
補助プランでテーブルを削除すると、15 日後にデータが完全に削除されます。 |
料金を最小限に抑えるには、テーブル レベルの保持期間を 4 日間に設定し、データが切り捨てられる 4 日後にテーブルを削除します。 |
分析 または 基本 プラン: 同じ名前とスキーマを使用してテーブルを作成します。 データ復旧には、テーブルのリテンション期間が適用されます。
補助 計画: ソフトデリート期間中に、同じ名前とスキーマを持つテーブルを作成します。 |
検索結果テーブル (table_SRCH) |
テーブルとデータを即時かつ完全に削除します。 |
|
|
復元されたテーブル(table_RST) |
復元用にプロビジョニングされたホット キャッシュを削除しますが、ソース テーブル データは削除されません。 |
|
|
90 日間の既定の保持期間を持つログ テーブル
既定では、Usage および AzureActivity テーブルは少なくとも 90 日間、無料でデータを保持します。 ワークスペースの保持期間を 90 日より長くに延長すると、これらのテーブルの保持期間も長くなります。 これらのテーブルも、データ インジェスト料金の対象になりません。
Application Insights リソースに関連するテーブルでも、データは 90 日間無料で保持されます。 これらの各テーブルの保持は個別に調整できます。
AppAvailabilityResults
AppBrowserTimings
AppDependencies
AppExceptions
AppEvents
AppMetrics
AppPageViews
AppPerformanceCounters
AppRequests
AppSystemEvents
AppTraces
価格モデル
Analytics と長期の保持期間は、データの GB 量とデータが保持される日数に基づいて計算されます。 データ保持期間の課金は日次で行われます (UTC タイム ゾーンの日数に基づきます)。
_IsBillable == false を持つログ データは、インジェストまたは保持の料金の対象になりません。
詳細については、次の記事を参照してください。
関連コンテンツ
各項目の詳細情報