Azure 監視器 的活動記錄

Azure 監視器 透過活動日誌功能管理你的 Azure 資源紀錄。 活動日誌記錄的操作包括建立虛擬機器、變更金鑰保險庫存取政策或 Resource Manager 部署錯誤。 這些管理操作也稱為 控制平面 操作。 使用活動日誌來檢視或稽核這些資訊,或建立警示,讓事件發生時能主動收到通知。

與活動日誌不同,Azure 資源日誌擷取資料平面在資源內執行的操作。 例如,這些操作包括從金鑰保險庫取得秘密或向資料庫提出請求。 資源日誌預設不會被收集,需要用 診斷設定來設定。

小提示

如果部署操作錯誤引導你閱讀本文,請參閱 「故障排除常見 Azure 部署錯誤」。

活動日誌條目

Azure 監視器 預設會收集活動日誌條目,無需設定。 系統會產生這些條目,你無法更改或刪除它們。 條目通常由變更(建立、更新及刪除操作)或啟動的動作產生。 活動日誌通常不會捕捉讀取操作。

活動日誌條目通常會在 事件發生後3至20分鐘內提供分析與警示。 關於活動日誌類別的說明,請參見 Azure活動日誌事件結構

保留期限

Azure 會保留活動日誌事件 90 天 ,然後刪除。 在這段期間內,不論數量多寡,系統都不會向您收取項目費用。 若想增加功能,例如更長的保留時間,可以建立診斷設定,並根據需求 在其他地點收集條目 。 延長保留期限最常見的原因之一是為了保留 資源創建者的資訊,這些資訊僅在活動日誌中提供。

檢視和擷取活動記錄

查看訂閱、資源群組或個別資源的活動日誌事件。 可以使用Azure入口網站,或透過程式化查詢 Activity Log REST API

Azure 入口網站在大多數服務選單中提供 [活動記錄] 刀鋒視窗。 這些區域也都支援使用 REST 或特定的 Azure CLI 和 Azure PowerShell 指令進行程式化存取。

請指定要取回事件的時間區間。 要使用 REST API 取得事件,必須包含 $filter 該參數以及至少 eventTimestamp 一個起始值。 預設情況下,活動日誌會保留事件 90 天。 確保你的時間範圍開始和結束都在那90天的期限內。

活動日誌存取情境

以下章節呈現常見情境,展示透過 Azure 入口網站存取與檢索活動日誌事件的不同方式,無論是使用 Azure CLI 與 Azure PowerShell 程式化,或使用 REST 呼叫:

  • Azure 入口網站範例提供了關於該檢視中應該預期的事件類型的額外背景。

  • Azure CLI範例突顯了透過 az monitor activity-log list 指令所提供的具體指令。

  • Azure PowerShell 範例會突出透過 Get-AzActivityLog cmdlet 提供的具體 cmdlet。

  • REST API 範例展示了如何透過活動$filter 使用所需參數來取得事件。

    列出資源群組的活動記錄事件範例也示範如何使用 Prefer 標頭,明確為用戶端設定逾時,使其符合活動記錄 REST API 的 75 秒最長逾時期間。

    支援的模式$filter 詳細資料
    預設訂閱的時間範圍 $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}'
    資源群組 $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceGroupName eq '{resourceGroupName}'
    特定資源 $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceUri eq '{resourceURI}'
    資源提供者 $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceProvider eq '{resourceProviderName}'
    相互關聯識別碼 $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and correlationId eq '{correlationID}'

列出訂用帳戶的活動記錄事件

訂閱層級事件會直接捕捉資源提供者所建立的事件,並且是列出活動日誌事件的預設範圍。 租用戶層級和管理群組層級事件,只會擷取這些階層中的 Azure Resource Manager 事件。 這些較高層級的範圍不包括由資源提供者直接生成且不屬於 Azure Resource Manager 操作的事件。

以下範例說明如何在特定時間範圍內取得訂閱的活動日誌事件。

你開啟 活動日誌 的選單決定了它的初始篩選條件。 如果你從 監視器 選單打開,預設唯一選擇的篩選條件是訂閱。 這跟從訂閱中選擇訂閱活動日誌來開啟是一樣的。

顯示活動記錄的螢幕擷取畫面。

為資源群組列出活動日誌事件

resourceGroupName 添加到 $filter 中,以便在 Azure 監視器 中將活動日誌結果限制到特定的資源群組。

你開啟 活動日誌 的選單決定了它的初始篩選條件。 如果您從資源的功能表中開啟它,篩選條件會設定為該資源。 選取 [新增篩選],以將更多屬性新增至篩選。 以下是您可以在入口網站篩選的其他屬性:

  • Resource - 屬於你Azure解決方案中的項目,例如資料庫或虛擬機器。
  • 資源類型 – 資源所屬的類別,例如虛擬機、網頁應用程式或資料庫。
  • Operation - 影響Azure Resource Manager資源的動作或指令,如建立、刪除和寫入。
  • 事件啟動者 – 根據事件啟動者的身份來過濾事件。
  • 事件類別 – 篩選特定操作的事件類型。

回傳特定活動日誌屬性

使用參數只回傳指定的屬性,從而減少回應的有效載荷大小。 欲了解更多資訊,請參閱活動日誌結構性質描述。

Azure 入口網站沒有提供直接限制活動日誌事件回傳屬性的方法。 為了減少所瀏覽的資料量,請使用活動日誌刀片中的編輯欄位選項,選擇入口網站檢視中顯示哪些欄位。

列出租用戶層級活動記錄事件

租戶層級活動日誌事件通常條目有限,但可能包含管理群組或訂閱建立等重要事件。 這些事件與訂閱層級的活動日誌事件是分開的,但可能包含重複的資源管理事件。

在此範圍內查詢使用的 REST API 與訂閱層級的活動日誌事件 API 不同。 Azure CLI 和 Azure PowerShell 並不提供專用指令。

請移至 Azure 入口網站中的Monitor>活動記錄。 更改 活動 下拉選單,並選擇 目錄活動

螢幕擷取畫面顯示在 Azure 入口網站的 [活動記錄] 刀鋒視窗中已選取 [目錄活動] 選項。

列出管理群組層級活動記錄事件

管理群組層級的活動記錄事件會記錄特定管理群組範圍內的事件,例如原則指派及管理群組成員變更。

備註

  • 以下範例使用 2017-03-01-preview API 版本,這是管理群組層級活動日誌查詢所必需的。

若要在Azure入口網站查看管理群組層級活動日誌事件,請前往 Management groups> 選擇管理群組 >Activity log

此截圖顯示Azure入口網站中管理群組的活動日誌視窗。

下表說明前述範例中使用的參數。

Variable 範例值 Purpose
主持人 management.azure.com 隱含 ARM 端點
subscriptionId aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e 使用者輸入
resourceGroupName myResourceGroup 使用者輸入
managementGroupId (管理群組ID) myManagementGroup 使用者輸入
apiVersion • 2015-04-01
• 2017-03-01-預覽(管理組層級)
參考資料

檢視變更歷程記錄

您可以檢視某些事件的 [變更記錄],以顯示該事件時間發生的變更。 從活動日誌中選擇一個你想更深入檢視的事件。 選取 變更歷程記錄 索引標籤,以檢視在操作時間的前後各 30 分鐘內,資源上的任何變更。

顯示事件 [變更歷程記錄] 列表的螢幕快照。

如果活動有任何變更,入口網站會顯示可選的變更清單。 選取變更會開啟 [變更歷程記錄] 頁面。 此頁面會顯示資源的變更。

以下範例顯示虛擬機大小改變。 頁面會顯示變更之前和變更之後的 VM 大小。 若要深入瞭解變更歷程記錄,請參閱 取得資源變更

顯示 [變更歷程記錄] 頁面的螢幕快照,其中顯示出差異。

活動記錄見解

活動日誌洞察是一本 Azure 監視器 工作簿,提供一組儀表板,用以監控訂閱中資源與資源群組的變更。 儀錶板也會呈現訂用帳戶中執行活動的使用者或服務,以及活動狀態的相關數據。

要啟用活動日誌洞察,請依照 Export 活動日誌 說明,匯出活動日誌到Log Analytics工作區。 此過程會將事件傳送到 AzureActivity 資料表,活動日誌洞察會使用該資料表。

顯示活動記錄見解儀表板的螢幕擷取畫面。

您可以在訂用帳戶或資源層級開啟活動記錄深入解析。 針對訂用帳戶,請從 Monitor 功能表的 Workbooks 區段中選取 Activity Logs Insights

顯示如何在規模層級上尋找和開啟活動記錄分析活頁簿的螢幕快照。

針對個別資源,從資源功能表的 [活頁簿] 區段中選取 [活動記錄深入解析]

顯示如何在資源層級上定位並開啟活動記錄分析工作簿的螢幕快照。

匯出活動記錄

建立診斷設定,將活動日誌條目傳送到其他目的地,以增加保留時間和功能。

顯示活動記錄、資源記錄和平台計量集合的圖表。

在Azure 入口網站中,選擇 活動日誌,然後在 Azure 監視器 選單中選擇 匯出活動日誌。 欲了解更多資訊及建立診斷設定的方法,請參閱 Azure 監視器 中的診斷設定。 請務必停用 活動記錄的任何舊版設定

顯示在 Azure 監視器選單中,選取「活動紀錄」,並在監視器-活動記錄選單列中突出顯示「匯出活動記錄」的螢幕截圖。

以下章節將詳細說明每個可配置的資源日誌目的地。

備註

匯出活動記錄的舊版方法是記錄設定檔。 請參閱 舊版集合方法

將活動日誌傳送到 Log Analytics workspace,以達成以下功能:

活動日誌沒有資料擷取費用。 活動日誌的保留費用僅適用於超過預設保留期90天的期間。 您可以 將保留期限延長 至最長 12 年。

Log Analytics工作區中的活動日誌資料會儲存在一個名為 AzureActivity 的表格中。 此資料表的結構會根據記錄項目類別而不同。

例如,若要檢視每個類別的活動記錄計數,請使用下列查詢:

AzureActivity
| summarize count() by CategoryValue

若要擷取系統管理類別中的所有記錄,請使用下列查詢:

AzureActivity
| where CategoryValue == "Administrative"

這很重要

在某些案例中,AzureActivity 欄位中的值,其大小寫可能與其他對等值不同。 查詢 中的 AzureActivity資料時,使用不區分大小寫的運算子進行字串比較,或使用純量函數在進行任何比較之前強制欄位採用統一大小寫。 例如,在欄位上使用 tolower() 函式,強制它在執行字串比較時一律為小寫或 =~ 運算子

出口管理群組活動日誌

當你為管理群組建立診斷設定時,該設定會匯出該管理群組的 Azure 監視器 活動日誌事件,以及其層次結構下的所有管理群組的活動日誌事件。 如果階層結構中有多個管理群組有診斷設定,你會收到重複事件。 你只需要在最高層級的管理群組上設置診斷設定,就能捕捉階層中的所有事件。

管理群組也收集許多與其下訂閱項目相同的活動。 如果訂閱和管理群組都有診斷設定,你會收到重複事件。 Azure 資源管理員在撰寫事件時包含階層屬性,但這不是必填欄位。 Azure Resource Manager 以外的資源提供者不會填入,因此他們的事件不會在層級結構中向上傳播。 因此,獲得重複事件比錯過事件好。

例如,如果您有 MG1,其中包含 MG2,而 MG2 包含 Subscription1,則 MG1 上的診斷設定會擷取 MG1、MG2,以及 Subscription1 上診斷設定所收集的許多事件。 在這種情況下,MG2 不需要診斷設定,因為它只會收集重複事件。

如果有重複事件,使用查詢來合併它們,利用所有字段的雜湊值來識別唯一紀錄。 以下 Kusto 查詢範例展示了在 Log Analytics 工作區收集的日誌範例:

AzureActivity
| extend Hash = hash(dynamic_to_json(pack_all()))
| summarize arg_max(TimeGenerated, *) by Hash

將活動日誌匯出成檔案

選擇 「下載為 CSV 」,以將活動日誌匯出為 Azure 入口網站的 CSV 檔案。

截圖顯示 Azure 入口網站活動日誌中「以 CSV 下載」按鈕。

這很重要

匯出大量日誌條目可能需要很長時間。 若要改善效能,請減少匯出的時間範圍。 在 Azure 入口網站中,設定 Timespan 設定。

識別資源建立

利用活動日誌查詢系統何時建立資源,以及是誰創建的。 活動日誌是唯一儲存資源創作者的地方。 由於活動日誌預設只能保留 90 天的資料,你必須將日誌匯出到允許延長保留期限的地點,例如日誌分析工作區。 接著透過查詢 AzureActivity 資料表找到資源的創建者。 資料會保留你在本表中指定的 保留期間內。