Azure 監視器中的診斷設定
本文提供建立及設定診斷設定以將 Azure 平台計量與記錄傳送至不同目的地的詳細資料。
根據預設,平台計量會自動傳送至 Azure 監視器計量,而不需要設定。
平台記錄提供相依於 Azure 資源和 Azure 平台的詳細診斷和稽核資訊:
- 在資源記錄路由至目的地之前,不會收集資源記錄。
- 活動記錄是獨立存在,但可以路由至其他位置。
每個 Azure 資源都需要自己的診斷設定,這定義下列準則:
- 來源:要傳送至設定中所設定目的地的計量和記錄資料類型。 可用的類型會因資源類型而異。
- 目的地:要傳送至的一或多個目的地。
單一診斷設定僅能定義其中一個目的地。 如果您想要將資料傳送至多個特定目的地類型 (例如兩個不同 Log Analytics 工作區),則請建立多個設定。 每個資源最多可以有五個診斷設定。
警告
如果您需要刪除資源,您應該先刪除其診斷設定。 否則,如果您重新建立此資源,根據每個資源的資源設定,新的資源可能會隨附已刪除資源的診斷設定。 如果新的資源隨附這些診斷設定,則會繼續依照診斷設定中的定義收集資源記錄,並將適用的計量和記錄資料傳送至先前設定的目的地。
此外,對於您即將刪除且不打算再使用的資源,最好能刪除其診斷設定以確保環境乾淨。
下列影片逐步示範如何使用診斷設定來路由資源平台記錄。 影片是屬於較早期版本。 請注意下列變更:
- 現在有四個目的地。 您可以將平台計量與記錄傳送給特定 Azure 監視器合作夥伴。
- 2021 年 11 月所引進的新功能稱為類別群組。
本文包含這些新功能的相關資訊。
來源
以下是來源選項。
計量
AllMetrics 設定會將資源的平台計量路由至其他目的地。 此選項可能不會向所有資源提供者呈現。
資源記錄
有了記錄,您可以選取想要個別路由的記錄類別,或選擇類別群組。
注意
類別群組不會套用至計量。 並非所有資源都有可用的類別群組。
您可以使用類別群組來根據預先定義的群組動態收集資源記錄,而無須選取個別記錄類別。 Microsoft 會定義群組,以協助監視所有 Azure 服務的特定使用案例。
經過一段時間後,群組中的類別可能會隨著新記錄推出或評定變更而更新。 從類別群組新增或移除記錄類別時,會自動修改記錄集合,而無須更新診斷設定。
當您使用類別群組時,您會:
- 無法再根據個別類別類型個別選取資源記錄。
- 無法再將保留設定套用至傳送至 Azure 儲存體的記錄。
目前有兩個類別群組:
- 全部 - 資源所提供的每個資源記錄。
- 稽核 - 記錄客戶與資料或服務設定互動的所有資源記錄。 請注意,稽核記錄代表了每個資源提供者提供最相關稽核資料的嘗試,但從稽核標準觀點來看可能並不夠。
注意:啟用Azure SQL資料庫的稽核不會啟用Azure SQL資料庫的稽核。 若要啟用資料庫稽核,您必須從 Azure 資料庫的 [稽核] 刀鋒視窗中加以啟用。
活動記錄檔
請參閱活動記錄設定一節。
Destinations
平台記錄和計量可以傳送至下表中列出的目的地。
為了確保傳輸中的資料安全性,強烈建議您設定傳輸層安全性 (TLS)。 所有目的地端點都支援 TLS 1.2。
Destination | 描述 |
---|---|
Log Analytics 工作區 | 計量會轉換成記錄表單。 此選項可能不適用於所有資源類型。 將記錄與計量傳送至 Azure 監視器記錄存放區 (可透過 Log Analytics 搜尋) 協助您將其整合到查詢、警示,以及具有現有記錄資料的視覺效果。 |
Azure 儲存體帳戶 | 將記錄和計量封存至儲存體帳戶,有助於稽核、靜態分析或備份。 相較於使用 Azure 監視器記錄或 Log Analytics 工作區,儲存體的成本較低,而且可以無限期在此保存記錄。 |
Azure 事件中樞 | 將記錄和計量傳送至事件中樞時,您可以將資料串流至外部系統,例如協力廠商 SIEM 和其他 Log Analytics 解決方案。 |
Azure 監視器合作夥伴整合 | 您可以建置 Azure 監視器與其他非 Microsoft 監視平台之間的特製化整合。 當已使用其中一個合作夥伴,此整合會非常實用。 |
活動記錄設定
活動記錄會使用診斷設定,但有自己的使用者介面,因為其會套用至整個訂用帳戶,而非個別資源。 此處所列的目的地資訊仍適用。 如需詳細資訊,請參閱 Azure 活動記錄。
需求及限制
本節探討需求和限制。
遙測到達目的地所需的時間
設定好診斷設定之後,資料應該會在 90 分鐘內開始流向所選目的地。 如果您在 24 小時內未收到任何資訊,則可能是
- 未產生任何記錄,或
- 基礎路由機制發生錯誤。 請嘗試停用再重新啟用設定。 若您繼續遇到問題,請透過 Azure 入口網站連絡 Azure 支援。
計量作為來源
匯出計量有某些限制:
- 目前不支援透過診斷設定傳送多維度計量:維度的計量會匯出為扁平化單一維度計量,並跨維度值彙總。 例如,可以探索區塊鏈上的 IOReadBytes 計量,並將其依個別節點層級圖表化。 然而,透過診斷設定匯出時,匯出的計量會顯示所有節點的所有讀取位元組。
- 並非所有計量都可以使用診斷設定匯出:由於內部限制,因此並非所有計量都可以匯出至 Azure 監視器記錄或 Log Analytics。 如需詳細資訊,請參閱支援計量清單中的可匯出資料行。
若要解決特定計量的限制,您可以使用 Metrics REST API 手動擷取這些限制。 接著,您可以使用 Azure 監視器資料收集器 API 將這些限制匯入至 Azure 監視器記錄。
目的地限制
建立診斷設定之前,必須先建立診斷設定的目的地。 如果進行設定的使用者對兩個訂用帳戶擁有適當的 Azure 角色型存取控制,目的地就不一定要與資源傳送記錄位於相同的訂用帳戶。 使用 Azure Lighthouse,也可以讓診斷設定傳送至另一個 Azure Active Directory 租用戶中的工作區、儲存體帳戶或事件中樞。
下列資料表提供每個目的地的唯一需求,包括任何區域限制。
Destination | 必要條件 |
---|---|
Log Analytics 工作區 | 工作區不必位於與受監視資源相同的區域中。 |
儲存體帳戶 | 請勿使用已儲存其他非監視資料的現有儲存體帳戶,如此才能對資料有更好的存取控制。 若要將活動記錄與資源記錄封存在一起,可以選擇使用相同的儲存體帳戶,將所有監視資料保留在中央位置。 若要將資料傳送至不可變儲存體,請設定儲存體帳戶的不可變原則,如設定並管理 Azure Blob 儲存體的不變性原則中所述。 您必須遵循此連結文章中所有的步驟,包括啟用受保護的附加 Blob 寫入。 若是區域資源,則儲存體帳戶必須位於與受監視資源相同的區域中。 啟用虛擬網路時,診斷設定無法存取儲存體帳戶。 您必須啟用 [允許受信任的 Microsoft 服務] 以略過儲存體帳戶的此防火牆設定,讓 Azure 監視器診斷設定服務獲授儲存體帳戶的的存取權。 不支援以 Azure DNS 區域端點 (預覽) 和 Azure 進階 LRS (本地備援儲存體) 儲存體帳戶作為記錄或計量目的地。 |
事件中樞 | 命名空間的共用存取原則會定義串流機制的權限。 串流至事件中樞需要管理、傳送和接聽權限。 若要更新診斷設定以包括串流,您必須擁有事件中樞授權規則的 ListKey 權限。 若是區域資源,則事件中樞命名空間必須位於與受監視資源相同的區域中。 啟用虛擬網路時,診斷設定無法存取事件中樞資源。 您必須在事件中樞啟用 [允許受信任的 Microsoft 服務] 以略過事件中樞的此防火牆設定,讓 Azure 監視器診斷設定服務獲授事件中樞資源的存取權。 |
合作夥伴整合 | 解決方案會因合作夥伴而有所不同。 如需詳細資料,請參閱 Azure 監視器合作夥伴整合文件。 |
控制成本
在 Log Analytics 工作區中收集資料的成本,因此您應該只收集每個服務所需的類別。 資源記錄的資料量在服務之間有很大的差異:
您可能也不需要從 Azure 資源收集平台計量,因為您已在計量中收集此資料。 僅當您在工作區中需要計量資料以使用記錄查詢進行更複雜的分析時,才將診斷資料設定為收集計量。
診斷設定不允許細微篩選資源記錄。 您可能需要特定類別中的特定記錄,但不需要其他記錄。 或者,您可能想要從資料中移除不必要的資料行。 在這些情況下,請使用工作區上的 轉換 來篩選您不需要的記錄。
您也可以藉由移除資料行而不需要實用資訊,來使用轉換來降低所要記錄的儲存需求。 舉例來說,您在資源記錄中,可能有想用於警示的錯誤事件。 但您可能不需要包含大量資料之記錄中的特定資料行。 您可以針對移除這些資料行的資料表建立轉換。
提示
如需降低 Azure 監視器成本的策略,請參閱 成本優化和 Azure 監視器。
建立診斷設定
您可以使用多個方法來建立和編輯診斷設定。
您可以從 Azure 監視器功能表或資源的功能表,在 Azure 入口網站中設定診斷設定。
在 Azure 入口網站中設定診斷設定的位置會視資源而定:
針對單一資源,在資源功能表的 [監視] 下選取 [診斷設定]。
針對一或多個資源,在 [Azure 監視器] 功能表的 [設定] 下選取 [診斷設定],然後選取資源。
針對活動記錄,在 [Azure 監視器] 功能表上選取 [活動記錄],然後選取 [診斷設定]。 請務必先停用活動記錄的任何舊版設定。 如需指示,請參閱停用現有的設定。
如果已選取的資源上沒有設定,則系統會提示您建立設定。 選取 [新增診斷設定]。
若資源上存在現有的設定,則您會看到已設定的設定清單。 選取 [新增診斷設定] 新增設定。 亦或選取 [編輯設定] 編輯現有的設定。 每項設定的每種目的地類型都只能有一個。
如果您的設定還沒有名稱,請為其命名。
要路由的記錄與計量:針對記錄,請選擇類別群組,或選取您想要傳送至稍後指定目的地的每個資料類別個別核取方塊。 類別清單會因每個 Azure 服務而異。 如果您也要將計量儲存至 Azure 監視器記錄中,請選取 [AllMetrics]。
目的地詳細資料:選取每個目的地的核取方塊。 隨即出現選項,以便您可以新增詳細資訊。
Log Analytics:輸入訂用帳戶與工作區。 如果沒有工作區,您必須建立工作區再繼續。
事件中樞:指定下列準則:
- 訂用帳戶:事件中樞所屬的訂用帳戶。
- 事件中樞命名空間:如果沒有,您必須建立事件中樞命名空間。
- 事件中樞 (選用):要傳送所有資料的所在名稱。 若不指定名稱,則會為每個記錄類別建立事件中樞。 若要傳送至多個類別,您可能要指定名稱以限制事件中樞建立的數目。 如需詳細資訊,請參閱 Azure 事件中樞配額和限制。
- 事件中樞原則名稱 (選用):原則會定義串流機制所擁有的權限。 如需詳細資訊,請參閱事件中樞功能。
儲存體:選取 [訂用帳戶]、[儲存體帳戶] 和 [保留] 原則。
秘訣
請考慮將保留原則設定為 0,並使用 Azure 儲存體生命週期原則,或使用排程工作從儲存體中刪除您的資料。 這些策略可能會提供更一致的行為。
首先,如果您使用儲存體進行封存,通常會希望您的資料保留超過 365 天。
其次,若您選擇大於 0 的保留原則,則會在儲存時將到期日附加至記錄。 儲存之後,將無法變更這些記錄的日期。
例如,如您將 WorkflowRuntime 的保留原則設定為 180 天,然後在 24 小時之後將其設定為 365 天,則前 24 小時內儲存的記錄將在 180 天後自動刪除。 該類型的所有後續記錄將在 365 天後自動刪除。 後來變更保留原則不會讓前 24 小時的記錄保留 365 天。
合作夥伴整合:您必須先將合作夥伴整合安裝到您的訂用帳戶中。 設定選項會因合作夥伴而有所不同。 如需詳細資訊,請參閱 Azure 監視器合作夥伴整合。
選取 [儲存]。
一段時間之後,設定清單中會出現此資源的新設定。 隨著新事件資料產生,記錄會串流至指定的目的地。 從發出事件到事件出現在 Log Analytics 工作區中,最多可能需要 15 分鐘的時間。
疑難排解
以下是一些疑難排解秘訣。
不支援計量類別
當部署診斷設定時,您會收到「不支援計量類別 'xxxx'。」的相似錯誤訊息。即使先前部署成功,您仍可能收到此錯誤。
使用 Resource Manager 範本、REST API、CLI 或 Azure PowerShell 時會發生此問題。 透過 Azure 入口網站建立的診斷設定不會受到影響,因為只會顯示支援的類別名稱。
該問題是基礎 API 中最近的變更所造成。 不支援 AllMetrics 以外的計量類別,且除了少數特定 Azure 服務之外,一律不支援。 在過去,部署診斷設定時會忽略其他類別名稱。 Azure 監視器後端會將這些類別重新導向至 AllMetrics。 自 2021 年 2 月起,已更新後端,以具體確認所提供的計量類別正確無誤。 此變更導致某些部署失敗。
如果您收到此錯誤,請更新您的部署以將計量類別名稱取代為 AllMetrics 來修正問題。 若部署先前新增多個類別,則應該只能保留一項具有 AllMetrics 的類別。 若您繼續遇到問題,請透過 Azure 入口網站連絡 Azure 支援。
設定會因為 resourceID 中的非 ASCII 字元而消失
診斷設定不支援非 ASCII 字元的資源識別碼。 例如,請考量 Preproducción 一詞。 因為您無法在 Azure 中重新命名,所以唯一選項是建立不含非 ASCII 字元的新資源。 若字元位於資源群組中,您可以將其底下的資源移至新的資源群組。 否則,您必須重新建立資源。
重複或已卸除資料的可能性
雖然系統會盡一切努力確保所有記錄資料都正確傳送至目的地,但無法保證端點之間記錄的 100% 資料傳輸。 適當的重試及其他機制將有助於解決這些問題,並嘗試確保記錄資料抵達端點。