Azure 監視器記錄中的資料保留和封存
在此文章
Azure 監視器記錄會保留兩種狀態的資料:
互動式保留 :可讓您保留互動式查詢 的分析記錄,最長 2 年。
封存 :可讓您以較低的成本保留工作區中較舊、較少使用的資料。 您可以使用搜尋作業 來存取封存狀態中的資料,然後將其還原 。 您可以將資料保持在封存狀態,最長 12 年。
預設免費層保留期間為 30 天的「互動式保留期」。
本文描述如何設定資料保留和封存。
保留和封存的運作方式
每個工作區都有套用至所有資料表的預設保留設定。 您可以在個別資料表上設定不同的保留設定。
在互動式保留期間,資料可用於監視、疑難排解和分析。 當您不會再用到這些記錄,但仍然需要保留資料以符合合規性規範或用於偶爾的調查時,請將記錄封存以節省成本。
封存的資料會與可用於互動式查詢的資料一同保留於相同資料表中。 當您設定的總保留期間比互動式保留期間還長時,Log Analytics 就會在保留期間結束時立即自動封存相關資料。
您可以執行搜尋作業 或還原封存的記錄 來存取封存的資料。
注意
封存期只能在資料表層級設定,不能在工作區層級設定。
保留和封存設定的調整
當您縮短現有的保留設定時,Azure 監視器會在移除資料之前等候 30 天,以便您可以在設定發生錯誤時還原變更並避免遺失資料。 您可以視需要立即清除資料 。
當您增加保留設定時,新的保留期間會套用至已擷取至資料表且尚未清除或移除的所有資料。
如果您在包含現有資料的資料表上變更封存設定,該資料表中的相關資料也會立即受到影響。 例如,您目前可能有一個資料表,其互動式保留為 180 天且沒有封存期間。 您決定將保留設定變更為 90 天的互動式保留,而不會變更 180 天的總保留期間。 Log Analytics 會立即封存所有超過 90 天的資料,且不會刪除任何資料。
當您刪除 Log Analytics 工作區中的資料表時,資料所發生的情況
Log Analytics 工作區可以包含數種資料表類型 。 刪除資料表時所發生的情況依每個資料表而異:
資料表類型
資料保留
建議
Azure 資料表
Azure 資料表會保存 Azure 服務或解決方案所需之 Azure 資源或資料的記錄,且無法刪除。 當您停止從資源、服務或解決方案串流資料時,如果未定義資料表層級保留期,資料會保留在工作區中,直到為資料表或預設工作區保留期定義的保留期間結束為止。
若要將費用降至最低,請將資料表層級保留期 設定為四天,再停止將記錄串流至資料表。
還原的資料表 (table_RST
)
刪除為了還原而佈建的熱快取,但不會刪除來源資料表資料。
搜尋結果資料表 (table_SRCH
)
立即並永久刪除資料表和資料。
自訂記錄資料表 (table_CL
)
虛刪除資料表,直到資料表層級保留期或預設工作區保留期間結束為止。 在虛刪除期間,您繼續支付資料保留費用,並可藉由設定具有相同名稱和結構描述的資料表來重新建立資料表並存取資料。 刪除自訂資料表後十四天,Azure 監視器會移除資料表層級保留期設定,並套用預設工作區保留期。
若要將費用降至最低,請將資料表層級保留期 設定為四天,再刪除資料表。
需要的權限
動作
需要的權限
設定 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 入口網站中 Log Analytics 工作區的預設保留設定為 30、31、60、90、120、180、270、365、550 和 730 天。 您可以在資料表層級設定保留和封存原則 ,以將不同的設定套用至特定資料表。 如果您是在「免費層」 上,則必須升級至付費層,才能變更資料保留期間。
重要
具有 30 天保留期的工作區可能會將資料保留 31 天。 如果您需要僅保留資料 30 天以符合隱私權原則,請使用 API 將預設工作區保留期設定為 30 天,並將 immediatePurgeDataOn30Days
工作區屬性更新為 true
。 目前只支援使用工作區 - 更新 API 進行此作業。
若要設定預設工作區保留:
從 Azure 入口網站中的 [Log Analytics 工作區] 功能表選取您的工作區。
在左窗格中,選取 [使用方式和估計成本] 。
選取頁面頂端的 [資料保留] 。
移動滑桿來增加或減少天數,然後選取 [確定] 。
若要設定資料表的保留和封存持續時間,請呼叫工作區 - 建立或更新 API :
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}?api-version=2023-09-01
要求本文
要求本文包含下表中的值。
名稱
類型
描述
properties.retentionInDays
整數
工作區資料保留天數。 允許的值視每個定價方案而定。 如需詳細資訊,請參閱定價層文件。
location
字串
資源的地理位置。
immediatePurgeDataOn30Days
boolean
旗標,指出資料是否在 30 天後立即移除,且無法復原。 僅適用於工作區保留期設定為 30 天時。
範例
本範例會將工作區的保留期設定為 30 天的工作區預設值,並確保資料在 30 天後立即移除,且無法復原。
要求
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 update 命令,並傳遞 --retention-time
參數。
此範例會將資料表的互動式保留期設定為 30 天,並將總保留期設定為兩年,這表示封存持續時間為 23 個月:
az monitor log-analytics workspace update --resource-group myresourcegroup --retention-time 30 --workspace-name myworkspace
使用 Set-AzOperationalInsightsWorkspace Cmdlet 來設定工作區的保留期。 此範例會將工作區的保留期設為 30 天:
Set-AzOperationalInsightsWorkspace -ResourceGroupName "myResourceGroup" -Name "MyWorkspace" -RetentionInDays 30
根據預設,工作區中的所有資料表都會繼承工作區的互動式保留設定,而且沒有任何封存。 您可以修改個別資料表的保留和封存設定,但舊版免費試用定價層中的工作區除外。
Analytics 記錄資料方案包含目前世代定價層 (隨用隨付和定額層,以及舊版獨立層和每一節點層) 中的 31 天互動式工作區保留期。 您可以支付額外成本 ,將互動式保留期間最長增加到 730 天。 如有需要,您可以使用 API 或 CLI,將互動式保留期間減少為短短四天。 不過,由於 31 天的互動式保留期包含在擷取價格中,因此將保留期間降低到 31 天以下並不會減少成本。 您可以將封存期設定為最長 4,383 天 (12 年) 的總保留時間。
注意
目前,您可以透過 Azure 入口網站和 API 將總保留期最長設定為 12 年。 CLI 和 PowerShell 限制為七年;支援 12 年將會隨之而來。
在 Azure 入口網站中,設定資料表的保留和封存持續期間:
從 [Log Analytics 工作區] 功能表選取 [資料表] 。
[資料表] 畫面會列出工作區中的所有資料表。
選取您要設定之資料表的捷徑功能表,然後選取 [管理資料表] 。
在資料表設定畫面的 [資料保留設定] 區段中設定保留和封存持續時間。
若要設定資料表的保留和封存持續時間,請呼叫 [資料表 - 更新] 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
值,如果您未指定這些值的話。
要求本文
要求本文包含下表中的值。
名稱
類型
描述
properties.retentionInDays
整數
資料表的資料保留天數。 此值可介於 4 到 730 之間。 將此屬性設定為 null 會套用工作區保留期間。 對於基本記錄資料表,此值一律為 8。
properties.totalRetentionInDays
整數
資料表的總資料保留期,包括封存期。 這個值可以介於 4 與 730 之間,或是 1095、1460、1826、2191、2556、2922、3288、3653、4018 或 4383。 如果不想要封存資料,請將此屬性設定為 null。
範例
此範例會將資料表的互動式保留期設定為工作區預設值 30 天,並將總保留期設定為兩年,這表示封存持續時間為 23 個月。
要求
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 天,並將總保留期設定為兩年,這表示封存持續時間為 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,請執行 az monitor log-analytics workspace table update 命令,並將 --retention-time
和 --total-retention-time
參數設定為 -1
。
例如:
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 Cmdlet 來設定資料表的保留和封存持續時間。 此範例會將資料表的互動式保留期設定為 30 天,並將總保留期設定為兩年,這表示封存持續時間為 23 個月:
Update-AzOperationalInsightsTable -ResourceGroupName ContosoRG -WorkspaceName ContosoWorkspace -TableName AzureMetrics -RetentionInDays 30 -TotalRetentionInDays 730
若要將工作區的預設互動式保留值重新套用至資料表,並將其總保留重設為 0,請執行 Update-AzOperationalInsightsTable Cmdlet,其中 -RetentionInDays
和 -TotalRetentionInDays
參數設定為 -1
。
例如:
Update-AzOperationalInsightsTable -ResourceGroupName ContosoRG -WorkspaceName ContosoWorkspace -TableName Syslog -RetentionInDays -1 -TotalRetentionInDays -1
透過資料表取得保留和封存設定
若要在 Azure 入口網站中檢視資料表的保留和封存持續時間,請從 [Log Analytics 工作區] 功能表選取 [資料表] 。
[資料表] 畫面會顯示工作區中所有資料表的互動式保留期和封存期。
若要取得特定資料表 (在此範例中,其為 SecurityEvent
) 的保留設定,請呼叫 [資料表 - 取得] 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 Cmdlet。
例如:
Get-AzOperationalInsightsTable -ResourceGroupName ContosoRG -WorkspaceName ContosoWorkspace -tableName SecurityEvent
具有唯一保留期間的資料表
根據預設,兩種資料類型 (Usage
和 AzureActivity
) 至少免費將資料保留 90 天。 當您將工作區保留期增加至超過 90 天時,您也會增加這些資料類型的保留期。 這些資料表也不會有資料擷取費用。
與 Application Insights 資源相關的資料表也會免費將資料保留 90 天。 您可以個別調整其中每個資料表的保留:
AppAvailabilityResults
AppBrowserTimings
AppDependencies
AppExceptions
AppEvents
AppMetrics
AppPageViews
AppPerformanceCounters
AppRequests
AppSystemEvents
AppTraces
計價模式
維護封存記錄的費用會根據您封存的資料量 (以 GB 為單位) 和您封存資料的天數來計算。 具有 _IsBillable == false
的記錄資料不需支付保留或封存費用。
如需詳細資訊,請參閱 Azure 監視器計量價格 。
下一步
深入了解: