Log Analytics 工作區會以兩種狀態保留資料:
-
分析保留:在此狀態下,資料可用於監視、疑難排解和近乎即時的分析。
-
長期保留期間:在此低成本狀態下,資料無法用於資料表方案功能,但可透過搜尋作業加以存取。
本文說明 Log Analytics 工作區如何保留資料,以及如何管理工作區中資料表的資料保留政策。
分析保留、長期保留和總保留
根據預設,Log Analytics 工作區中的所有資料表都會將資料保留 30 天,但具有 90 天預設保留期間的記錄資料表除外。 使用分析方案的資料表,可讓您的資料在分析保留期間可供即時查詢使用。 所有資料表方案都可透過查詢或搜尋作業來擷取儲存的資料,且資料可根據資料表方案用於視覺效果、警示和其他功能與服務。
對於使用分析方案的資料表,您可以將其分析保留期間延長至最多兩年。 基本方案資料表的查詢期限為 30 天,而輔助方案資料表則在總保留期間內可供查詢。 不過,基本和輔助資料表都有其他考量。 如需詳細資訊,請參閱查詢基本和輔助資料表中的資料。
附註
您可以使用 API 或 CLI,將 Analytics 資料表的分析保留期間縮短至最少四天。 不過,由於 31 天的分析保留期間包含在擷取價格中,因此將保留期間降低到 31 天以下並不會減少成本。
若要將相同資料表中的資料保留超過預設保留期間,請將資料表的總保留期間延長至最多 12 年。 在分析保留期間結束時,資料會在資料表中保留所設定總保留期間的剩餘時間。 在此期間 (即長期保留期間),可執行搜尋作業以從資料表中擷取所需的特定資料,並使其可供搜尋結果資料表中的互動式查詢使用。
保留變更的運作方式
當您縮短資料表的總保留期間時,Azure 監視器記錄會先等候 30 天再移除資料,因此,如果您在設定時發生錯誤,便可以還原變更並避免遺失資料。
當您延長總保留期間時,新的保留期間會套用至已擷取至資料表且尚未移除的所有資料。
當您對具有現有資料的資料表變更長期保留期間設定時,變更會立即生效。
範例:
- 您現有的 Analytics 資料表具有 180 天的分析保留期間,且沒有長期保留期間。
- 您將分析保留期間變更為 90 天,而不變更 180 天的總保留期間。
- Azure 監視器會自動將剩餘 90 天的總保留期間視為低成本的長期保留期間,因此存留 90-180 天之久的資料不會遺失。
需要的權限
| 動作 |
需要的權限 |
| 設定 Log 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 資料表的預設分析期間變更為最多兩年。 基本和輔助資料表只有總保留期間,預設為 30 天。
變更預設工作區層級的資料保留期間設定會自動影響工作區中仍套用預設設定的所有 Analytics 資料表。 如果您已變更特定資料表的分析保留期間,則當您變更工作區的預設資料保留期間設定時,該資料表不會受到影響。
重要
保留期間為 30 天的工作區可能會將資料保留 31 天。 如果您需要僅保留資料 30 天以符合隱私權原則,請使用 API 將預設工作區保留期設定為 30 天,並將 immediatePurgeDataOn30Days 工作區屬性更新為 true。 目前只支援使用工作區 - 更新 API 進行此作業。
以下範例將表格的互動保留時間設定為 30 天。
若要設定 Log Analytics 工作區內 Analytics 資料表的預設分析保留期間:
從 Azure 入口網站中的 [Log Analytics 工作區] 功能表選取您的工作區。
在 [設定] 區段中,選取左窗格中的 [使用量和估計成本]。
選取頁面頂端的 [資料保留]。
移動滑桿來增加或減少天數,然後選取 [確定]。
以下 Azure CLI 範例使用 az monitor log-analytics workspace update 命令。 它使用 --retention-time 參數設定 Analytics 表格在Log 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 cmdlet。 它使用 -RetentionInDays 參數設定 Analytics 表格在Log 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 範例使用 Workspaces - Update 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 資料表的分析保留期間延長為最多 730 天。
若要為使用任何資料方案的資料表延長長期保留期間,請將總保留期間設定為最多 12 年 (4,383 天)。
附註
目前,您可以透過 Azure 入口網站和 API 將總保留期最長設定為 12 年。 CLI 和 PowerShell 僅限於七年;接下來將提供 12 年的支援。
以下範例將表格的互動保留時間設為 30 天,總保留時間為兩年(730 天),也就是說長期保留期為 23 個月。
若要在 Azure 入口網站中修改資料表的保留期間設定:
從 [Log 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,請執行 az monitor log-analytics workspace table update 命令,並將 --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 cmdlet。 它會用 -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,請執行 Update-AzOperationalInsightsTable Cmdlet,其中 -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 範例使用 Tables - Update 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 會套用工作區保留期間。 針對基本和輔助記錄數據表,值一律為 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 入口網站中檢視資料表的保留期間設定,請從 [Log 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 cmdlet。 它會擷取特定資料表的保留設定。
# 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 資源或解決方案的記錄。 當您停止從資源或解決方案傳送資料時,資料會保留在工作區中,直到為資料表定義的保留期間結束為止,並據此收費。 |
若要降低費用,請將資料表層級保留期間設定為四天,這是支援的最短期間。 如果要刪除的資料表與應移除的解決方案 (例如 Sentinel) 相關聯,請在四天的保留期間結束後移除解決方案。 |
啟用解決方案。 資料復原受限於資料表保留。 |
自訂記錄資料表 (table_CL) |
自訂記錄資料表會保存 來自記錄擷取 API 或 HTTP 資料收集器 API (已棄用) 的記錄。 刪除資料表後,資料表名稱會保留十五天。 刪除分析或基本方案中的資料表,並不會刪除資料。 十五天後,資料表保留期間會設定為工作區保留期間,並按照資料表中的保留期間收取保留費用。 若刪除輔助方案中的資料表,資料會在十五天後永久刪除。 |
若要將費用降到最低,請將資料表層級保留期間設定為四天,並在資料修剪的四天後刪除資料表。 |
Analytics 或 Basic 方案:建立具有相同名稱和結構描述的資料表。 資料復原受限於資料表保留。
輔助 計劃:在軟刪除期間建立與之相同名稱與結構的資料表。 |
搜尋結果資料表 (table_SRCH) |
立即並永久刪除資料表和資料。 |
|
|
恢復表(table_RST) |
刪除為了還原而佈建的熱快取,但不會刪除來源資料表資料。 |
|
|
具有 90 天預設保留期間的記錄資料表
根據預設,Usage 和 AzureActivity 資料表會將資料免費保留至少 90 天。 當您將工作區保留期間延長至超過 90 天時,您也會延長這些資料表的保留期間。 這些資料表也不會有資料擷取費用。
與 Application Insights 資源相關的資料表也會免費將資料保留 90 天。 您可以個別調整其中每個資料表的保留:
AppAvailabilityResults
AppBrowserTimings
AppDependencies
AppExceptions
AppEvents
AppMetrics
AppPageViews
AppPerformanceCounters
AppRequests
AppSystemEvents
AppTraces
計價模式
分析和長期保留期間是根據資料的 GB 數量和資料保留天數來計算的。 資料保留計費會每天進行 (以 UTC 時區的天數為準)。
_IsBillable == false 的記錄資料不會有擷取或保留費用。
如需詳細資訊,請參閱下列文章:
相關內容
深入了解: