Azure 活動記錄
活動記錄是 Azure 中的平台記錄,提供訂用帳戶層級事件的深入解析。 活動記錄包含這類資訊,例如修改資源或虛擬機器啟動時。 您可以在 Azure 入口網站中檢視活動記錄,或使用 PowerShell 和 CLI 來取出項目。 本文提供檢視活動記錄並將它傳送至不同目的地的詳細資料。
如需更多功能,您應該建立診斷設定,以將活動記錄傳送至其中一或多個位置,原因如下:
- 至 Azure 監視器記錄 以取得更複雜的查詢和警示,以及較長的保留時間 (最多兩年)
- to Azure 事件中樞 to forward of Azure 外部
- 以Azure 儲存體較便宜、長期封存
如需建立診斷設定的詳細資訊,請參閱 建立診斷設定,以將平臺記錄和計量傳送至不同的目的地 。
注意
活動記錄中的項目會由系統產生,無法變更或刪除。
保留期間
活動記錄事件會在 Azure 中保留 90 天 ,然後刪除。 不論磁片區為何,在這段時間內,專案都不需要付費。 如需更多功能,例如較長的保留期,您應該建立診斷設定,並根據需求將整個路由傳送至另一個位置。 請參閱本文稍早一節中的準則。
檢視活動記錄
您可以從 Azure 入口網站的大部分功能表中存取活動記錄。 用來開啟活動記錄的功能表將決定其初始篩選。 如果您從 [監視] 功能表開啟,則唯一的篩選準則會設定為訂用帳戶。 如果您從資源的功能表中開啟它,則篩選準則會設定為該資源。 您可以一律變更篩選準則,以檢視所有其他專案。 選取 [新增篩選 ] 以將更多屬性新增至篩選。
如需活動記錄類別的描述,請參閱 Azure 活動記錄事件架構。
下載活動記錄
選取 [下載為 CSV] 以下載目前檢視中的事件。
檢視變更歷程記錄
您可以檢視某些事件的 [變更記錄],以顯示該事件時間發生的變更。 從您想要更深入了解的活動記錄中選取事件。 選取 [變更歷程記錄 (預覽)] 索引標籤,以檢視與該事件相關聯的任何變更。
如果事件有任何相關聯的變更,您將會看到一份可選取的變更清單。 這可開啟 [變更歷程記錄 (預覽)] 頁面。 在此頁面上,您會看到資源的變更。 在下列範例中,您可以看見 VM 的大小變更,還能看見變更前的先前 VM 大小以及變更後的大小。 若要深入瞭解變更歷程記錄,請參閱 取得資源變更。
擷取活動記錄事件的其他方法
您也可以使用下列方法來存取活動記錄事件:
- 使用 Get-AzLog Cmdlet,從 PowerShell 擷取活動記錄。 請參閱 Azure 監視器 PowerShell 範例。
- 使用 az monitor activity-log 從 CLI 擷取活動記錄。 請參閱 Azure 監視器 CLI 範例。
- 使用 Azure 監視器 REST API,從 REST 用戶端擷取活動記錄。
傳送至 Log Analytics 工作區
將活動記錄傳送至 Log Analytics 工作區,以啟用 Azure 監視器 記錄的功能,包括下列專案:
- 將活動記錄資料與 Azure 監視器所收集的其他監視資料相互關聯。
- 將多個 Azure 訂用帳戶和租使用者的記錄專案合併到一起分析的一個位置。
- 使用記錄查詢來執行複雜的分析,並深入瞭解活動記錄專案。
- 搭配活動專案使用記錄警示,以允許更複雜的警示邏輯。
- 儲存活動記錄專案超過活動記錄保留期限。
- 儲存在 Log Analytics 工作區的活動記錄資料沒有資料擷取費用。
- 儲存在 Log Analytics 工作區的活動記錄資料前 90 天沒有資料保留費用。
選取 [匯出活動記錄]。
將活動記錄傳送至 Log Analytics 工作區。 您可以將活動記錄從任何單一訂用帳戶傳送到最多五個工作區。
Log Analytics 工作區中的活動記錄資料會儲存在名為AzureActivity的資料表中,您可以在Log Analytics中使用記錄查詢來擷取。 此資料表的結構會根據 記錄專案的類別而有所不同。 如需資料表屬性的描述,請參閱 Azure 監視器資料參考。
例如,若要檢視每個類別的活動記錄計數,請使用下列查詢:
AzureActivity
| summarize count() by CategoryValue
若要擷取系統管理類別中的所有記錄,請使用下列查詢:
AzureActivity
| where CategoryValue == "Administrative"
傳送至Azure 事件中樞
將活動記錄傳送至Azure 事件中樞,以將專案傳送至 Azure 外部,例如傳送至協力廠商 SIEM 或其他記錄分析解決方案。 事件中樞的活動記錄事件會以 JSON 格式取用,其中包含 records
每個承載中記錄的專案。 架構取決於類別,並說明從 儲存體 帳戶和事件中樞的架構。
以下是活動記錄的事件中樞輸出資料範例:
{
"records": [
{
"time": "2019-01-21T22:14:26.9792776Z",
"resourceId": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
"operationName": "microsoft.support/supporttickets/write",
"category": "Write",
"resultType": "Success",
"resultSignature": "Succeeded.Created",
"durationMs": 2826,
"callerIpAddress": "111.111.111.11",
"correlationId": "c776f9f4-36e5-4e0e-809b-c9b3c3fb62a8",
"identity": {
"authorization": {
"scope": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
"action": "microsoft.support/supporttickets/write",
"evidence": {
"role": "Subscription Admin"
}
},
"claims": {
"aud": "https://management.core.windows.net/",
"iss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
"iat": "1421876371",
"nbf": "1421876371",
"exp": "1421880271",
"ver": "1.0",
"http://schemas.microsoft.com/identity/claims/tenantid": "00000000-0000-0000-0000-000000000000",
"http://schemas.microsoft.com/claims/authnmethodsreferences": "pwd",
"http://schemas.microsoft.com/identity/claims/objectidentifier": "2468adf0-8211-44e3-95xq-85137af64708",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "admin@contoso.com",
"puid": "20030000801A118C",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "9vckmEGF7zDKk1YzIY8k0t1_EAPaXoeHyPRn6f413zM",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "John",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "Smith",
"name": "John Smith",
"groups": "cacfe77c-e058-4712-83qw-f9b08849fd60,7f71d11d-4c41-4b23-99d2-d32ce7aa621c,31522864-0578-4ea0-9gdc-e66cc564d18c",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": " admin@contoso.com",
"appid": "c44b4083-3bq0-49c1-b47d-974e53cbdf3c",
"appidacr": "2",
"http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
"http://schemas.microsoft.com/claims/authnclassreference": "1"
}
},
"level": "Information",
"location": "global",
"properties": {
"statusCode": "Created",
"serviceRequestId": "50d5cddb-8ca0-47ad-9b80-6cde2207f97c"
}
}
]
}
傳送至 Azure 儲存體
如果您想要保留超過 90 天的記錄資料進行稽核、靜態分析或備份,請將活動記錄傳送至Azure 儲存體帳戶。 如果您只需要保留 90 天或更少的事件,就不需要設定封存至儲存體帳戶,因為活動記錄事件會保留于 Azure 平臺 90 天。
當您將活動記錄傳送至 Azure 時,會在發生事件時,在儲存體帳戶中建立儲存體容器。 容器中的 Blob 會使用下列命名慣例:
insights-activity-logs/resourceId=/SUBSCRIPTIONS/{subscription ID}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
例如,特定 Blob 的名稱可能類似下列:
insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/y=2020/m=06/d=08/h=18/m=00/PT1H.json
每個 PT1H.json blob 有一個 JSON blob,包含在 blob URL 指定時數內 (例如 h = 12) 發生的事件。 在目前這一小時,事件一發生就會附加到 PT1H.json 檔案。 分鐘值 (m=00) 一律為 00,因為資源記錄事件每小時分成個別 Blob。
每個事件會以下列格式儲存在 PT1H.json 檔案中,該檔案使用通用的最上層架構,但對於每個類別而言則是唯一的,如 活動記錄架構中所述。
{ "time": "2020-06-12T13:07:46.766Z", "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MV-VM-01", "correlationId": "0f0cb6b4-804b-4129-b893-70aeeb63997e", "operationName": "Microsoft.Resourcehealth/healthevent/Updated/action", "level": "Information", "resultType": "Updated", "category": "ResourceHealth", "properties": {"eventCategory":"ResourceHealth","eventProperties":{"title":"This virtual machine is starting as requested by an authorized user or process. It will be online shortly.","details":"VirtualMachineStartInitiatedByControlPlane","currentHealthStatus":"Unknown","previousHealthStatus":"Unknown","type":"Downtime","cause":"UserInitiated"}}}
舊版集合方法
本節說明收集診斷設定之前使用之活動記錄的舊版方法。 如果您使用這些方法,您應該考慮轉換至診斷設定,以提供更佳的功能和資源記錄的一致性。
記錄檔的設定檔
記錄設定檔是將活動記錄傳送至 Azure 儲存體或事件中樞的舊版方法。 使用下列程式繼續處理記錄檔設定檔,或將其停用,以準備移轉至診斷設定。
從Azure 入口網站的[Azure 監視器] 功能表中,選取 [活動記錄]。
選取 [匯出活動記錄]。
選取舊版體驗的紫色橫幅。
使用 PowerShell 設定記錄檔設定檔
如果記錄檔設定檔已經存在,您必須先移除現有的記錄檔設定檔,然後建立新的記錄檔設定檔。
使用
Get-AzLogProfile
來識別記錄設定檔是否存在。 如果記錄檔設定檔存在,請記下 name 屬性。使用
Remove-AzLogProfile
透過 name 屬性中的值來移除記錄設定檔。# For example, if the log profile name is 'default' Remove-AzLogProfile -Name "default"
使用
Add-AzLogProfile
來建立新的記錄設定檔:Add-AzLogProfile -Name my_log_profile -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -serviceBusRuleId /subscriptions/s1/resourceGroups/Default-ServiceBus-EastUS/providers/Microsoft.ServiceBus/namespaces/mytestSB/authorizationrules/RootManageSharedAccessKey -Location global,westus,eastus -RetentionInDays 90 -Category Write,Delete,Action
屬性 必要 描述 Name Yes 記錄檔設定檔的名稱。 StorageAccountId No 應儲存活動記錄之儲存體帳戶的資源識別碼。 serviceBusRuleId No 服務匯流排您想要在 中建立事件中樞之服務匯流排命名空間的規則識別碼。 這是格式為的字串: {service bus resource ID}/authorizationrules/{key name}
。位置 是 以逗號分隔的區域清單,其中列出您要收集的活動記錄檔事件的區域。 RetentionInDays Yes 事件應該保留在 儲存體 帳戶中的天數,從 1 到 365。 值為 0 會無限期地儲存記錄。 類別 No 以逗號分隔的類別清單,其中列出應該收集的事件類別。 可能的值為 Write、 Delete和 Action。
範例指令碼
以下是建立記錄設定檔的範例 PowerShell 腳本,將活動記錄寫入儲存體帳戶和事件中樞。
# Settings needed for the new log profile
$logProfileName = "default"
$locations = (Get-AzLocation).Location
$locations += "global"
$subscriptionId = "<your Azure subscription Id>"
$resourceGroupName = "<resource group name your Event Hub belongs to>"
$eventHubNamespace = "<Event Hub namespace>"
# Build the service bus rule Id from the settings above
$serviceBusRuleId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.EventHub/namespaces/$eventHubNamespace/authorizationrules/RootManageSharedAccessKey"
# Build the Storage Account Id from the settings above
$storageAccountId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"
Add-AzLogProfile -Name $logProfileName -Location $locations -StorageAccountId $storageAccountId -ServiceBusRuleId $serviceBusRuleId
使用 Azure CLI 設定記錄設定檔
如果記錄設定檔已經存在,您必須先移除現有的記錄設定檔,然後建立記錄設定檔。
使用
az monitor log-profiles list
來識別記錄設定檔是否存在。使用
az monitor log-profiles delete --name "<log profile name>
透過 name 屬性中的值來移除記錄設定檔。用來
az monitor log-profiles create
建立記錄設定檔:az monitor log-profiles create --name "default" --location null --locations "global" "eastus" "westus" --categories "Delete" "Write" "Action" --enabled false --days 0 --service-bus-rule-id "/subscriptions/<YOUR SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/namespaces/<Event Hub NAME SPACE>/authorizationrules/RootManageSharedAccessKey"
屬性 必要 Description NAME 是 記錄檔設定檔的名稱。 storage-account-id Yes 資源識別碼,活動記錄應該要儲存至此儲存體帳戶。 位置 是 以空格分隔的區域清單,其中列出您要收集的活動記錄事件的區域。 您可以使用 az account list-locations --query [].name
來檢視您訂用帳戶的所有區域清單。days Yes 應保留事件的天數,從 1 到 365。 值為 0 會無限期地 (永遠) 儲存記錄。 如果為零,則啟用的參數應設定為 false。 已啟用 Yes 是非題。 用來啟用或停用保留原則。 如果為 True,則 days 參數必須是大於 0 的值。 categories Yes 以空格分隔的類別清單,其中列出應收集的事件類別。 可能的值有 Write、Delete、Action。
Log Analytics 工作區
將活動記錄傳送至 Log Analytics 工作區的舊版方法正在連接工作區設定中的登入。
從Azure 入口網站的Log Analytics 工作區功能表中,選取要收集活動記錄的工作區。
在工作區功能表的 [ 工作區資料來源 ] 區段中,選取 [Azure 活動記錄]。
選取您要連線的訂用帳戶。
選取[連線],將訂用帳戶中的 [活動] 登入連接到選取的工作區。 如果訂用帳戶已經連線到另一個工作區,請選取 [先 中斷 連線] 以中斷連線。
若要停用設定,請執行相同的程式,然後選取 [ 中斷連線 ] 以從工作區移除訂用帳戶。
資料結構變更
匯出活動記錄體驗,會傳送與舊版方法相同的資料,以傳送活動記錄,其中包含 AzureActivity 資料表結構的一些變更。
下表中的資料行在更新的架構中已被取代。 它們仍存在於 AzureActivity 中,但沒有資料。 這些資料行的取代不是新的,但包含與已取代資料行相同的資料。 它們的格式不同,因此您可能需要修改使用這些查詢的記錄查詢。
活動記錄 JSON | Log Analytics 資料行名稱 (較舊的已淘汰) |
新的 Log Analytics 資料行名稱 | 備註 |
---|---|---|---|
category | 類別 | CategoryValue | |
status 值 (成功、開始、接受、失敗) |
ActivityStatus 值與 JSON 相同 |
ActivityStatusValue 值變更為 (成功、已啟動、接受、失敗) |
有效的值會變更,如下所示 |
子狀態 | ActivitySubstatus | ActivitySubstatusValue | |
operationName | OperationName | OperationNameValue | REST API 會將作業名稱值當地語系化。 Log Analytics UI 一律會顯示英文。 |
resourceProviderName | ResourceProvider | ResourceProviderValue |
重要
在某些情況下,這些資料行中的值會全部大寫。 如果您的查詢包含這些資料行,您應該使用 =~ 運算子來執行不區分大小寫的比較。
下列資料行已新增至已更新架構中的 AzureActivity :
- Authorization_d
- Claims_d
- Properties_d
活動記錄深入解析
活動記錄深入解析可讓您檢視訂用帳戶中資源和資源群組變更的相關資訊。 儀表板也會呈現訂用帳戶中哪些使用者或服務執行活動的資料,以及活動的狀態。 本文說明如何在Azure 入口網站中檢視活動記錄深入解析。
使用活動記錄深入解析之前,您必須 啟用將記錄傳送至 Log Analytics 工作區。
活動記錄深入解析如何運作?
您傳送至 Log Analytics 工作區 的活動記錄會儲存在名為 AzureActivity 的資料表中。
活動記錄深入解析是策劃的 Log Analytics 活頁簿,其中包含儀表板,以視覺化方式呈現 AzureActivity 資料表中的資料。 例如,系統管理員刪除、更新或建立資源,以及活動是否失敗或成功。
檢視活動記錄深入解析 - 資源群組/訂用帳戶層級
若要檢視資源群組或訂用帳戶層級上的活動記錄深入解析:
在Azure 入口網站中,選取[MonitorWorkbooks> ]。
選取 [Insights] 區段中的活動記錄Insights。
在 [活動記錄Insights] 頁面頂端,選取:
- [訂用帳戶] 下拉式清單中的一或多個 訂 用帳戶。
- [ CurrentResource ] 下拉式清單中的資源和資源群組。
- 要從 TimeRange 下拉式清單中檢視資料的時間範圍。
檢視任何 Azure 資源上的活動記錄深入解析
注意
- 此活頁簿目前不支援應用程式Insights資源。
若要檢視資源層級上的活動記錄深入解析:
在Azure 入口網站中,移至您的資源,選取 [活頁簿]。
在 [活動記錄Insights]區段中選取 [活動記錄] Insights。
在 [活動記錄Insights] 頁面頂端,選取:
- 要從 TimeRange 下拉式清單中檢視資料的時間範圍。
Azure 活動記錄專案 會顯示每個 活動記錄類別中的活動記錄計數。
依狀態的活動記錄 會顯示每個狀態中的活動記錄計數。
在訂用帳戶和資源群組層級, [依資源 提供者排序的活動記錄] 和 [依 資源提供者的活動 記錄] 會顯示每個資源和資源提供者的活動記錄計數。