本文提供建立及設定診斷設定以將 Azure 平台計量、資源記錄和活動記錄傳送至不同目的地的詳細資料。
每個 Azure 資源都需要自己的診斷設定,其會定義下列準則:
- 來源:要傳送至設定中所設定目的地的計量和記錄資料類型。 可用的類型會因資源類型而有所不同。
- 目的地:要傳送至的一或多個目的地。
單一診斷設定最多只能為每個目的地定義一個。 如果您想要將數據傳送至一個以上的特定目的地類型(例如,兩個不同的Log Analytics工作區),請建立多個設定。 每個資源最多可以有五個診斷設定。
警告
如果您需要刪除資源、重新命名或移動資源,或是跨資源群組或訂用帳戶移轉資源,請先刪除資源的診斷設定。 否則,如果您重新建立此資源,根據每個資源的資源設定,新的資源可能會隨附已刪除資源的診斷設定。 如果新的資源隨附這些診斷設定,則會繼續依照診斷設定中的定義收集資源記錄,並將適用的計量和記錄資料傳送至先前設定的目的地。
此外,對於您即將刪除且不打算再使用的資源,最好能刪除其診斷設定以確保環境乾淨。
備註
Azure 監視器資源記錄不會 100% 遺失。 資源記錄是以存放區和轉寄結構為基礎,旨在每天以可負擔的成本大規模移動數 PB 的資料。 這項功能包括跨平台的內建備援和重試,但不提供交易式保證。 交易式監視可能會降低受監視服務的可靠性與效能。 此外,暫時性記錄錯誤必須在無法確認記錄傳遞時停止上游服務。 每當 Azure 監視器小組可以確認資料遺失的持續來源時,小組就會以最高優先順序考慮解決方案並加以防止。 不過,由於分散於 Azure 的暫時性、非重複服務問題,因此仍可能會發生少量資料遺失的情形,而且無法攔截到所有問題。
下列影片逐步示範如何使用診斷設定來路由資源平台記錄。 影片在較早的時間完成。 請注意下列變更:
- 現在有四個目的地。 您可以將平台計量與記錄傳送給特定 Azure 監視器合作夥伴。
- 2021 年 11 月所引進的新功能稱為類別群組。
本文包含這些新功能的相關資訊。
來源
診斷資訊有三個來源:
- 平台度量值預設自動傳送至 Azure Monitor Metrics,而不需要配置。 如需支援計量的其他資訊,請參閱 Azure 監視器支援的計量
- 平台記錄會針對 Azure 資源及其相依的 Azure 平臺,提供詳細的診斷和稽核資訊。
- 在資源記錄路由至目的地之前,不會收集資源記錄。 如需支援記錄的詳細資訊,請參閱 Azure 監視器支援的資源記錄類別
- 活動記錄提供來自資源外部的資源資訊,例如建立或刪除資源的時間。 項目獨立存在,但可以路由至其他位置。
指標
AllMetrics 設定會將資源的平台計量路由至其他目的地。 此選項可能不存在於所有資源提供者。
資源記錄
有了資源記錄,您可以選取想要個別路由的記錄類別,或選擇類別群組。
類別群組
備註
類別群組不適用於所有計量資源提供者。 如果提供者在 Azure 入口網站的診斷設定中未提供它們,那麼它們也無法透過 Azure Resource Manager 模板取得。
您可以使用類別群組來根據預先定義的群組動態收集資源記錄,而無須選取個別記錄類別。 Microsoft會定義群組,以協助監視所有 Azure 服務的特定使用案例。 經過一段時間後,群組中的類別可能會隨著新記錄推出或評定變更而更新。 從類別群組新增或移除記錄類別時,會自動修改記錄集合,而無須更新診斷設定。
當您使用類別群組時,您會:
- 無法再根據個別類別類型個別選取資源記錄。
- 無法再將保留設定套用至傳送至 Azure 儲存體的記錄。
目前有兩個類別群組:
- 全部 - 資源所提供的每個資源記錄。
- 稽核 - 記錄客戶與資料或服務設定互動的所有資源記錄。 稽核記錄代表每個資源提供者嘗試提供最相關的稽核資料,但依您的使用案例而定,從稽核標準觀點來看可能並不夠。 如上所述,收集的內容是動態的,隨著新資源記錄類別的推出,Microsoft 可能會在一段時間後變更收集的內容。
「稽核」類別群組是「全部」類別群組的子集,但 Azure 入口網站和 REST API 會將這些群組視為個別的設定。 選取「全部」類別群組會收集所有稽核記錄,即使同時選取「稽核」類別群組也一樣。
下圖顯示 [新增診斷設定] 頁面上的記錄類別群組。
備註
在 Azure SQL Database 的診斷設定中啟用稽核類別並不會啟用資料庫的稽核。 若要啟用資料庫稽核,您必須從 Azure 資料庫的稽核刀鋒視窗中加以啟用。
活動記錄
請參閱活動記錄設定一節。
目的地
平台記錄和計量可以傳送至下表中列出的目的地。
為確保傳輸中的資料安全性,所有目的地端點都會設定為支援 TLS 1.2。
目的地 | 說明 |
---|---|
Log Analytics 工作區 | 度量會轉換成對數形式。 此選項可能不適用於所有資源類型。 將它們發送到 Azure 監視器記錄存放區(可透過 Log Analytics 搜尋),幫助您將其整合到查詢、警示和視覺化中,並結合現有的記錄資料。 |
Azure 儲存體帳戶 | 將記錄和計量封存至儲存體帳戶,有助於稽核、靜態分析或備份。 相較於使用 Azure 監視器記錄或 Log Analytics 工作區,儲存體的成本較低,而且可以無限期在此保存記錄。 |
Azure 事件中樞 | 將記錄和計量傳送至事件中樞時,您可以將資料串流至外部系統,例如協力廠商 SIEM 和其他 Log Analytics 解決方案。 |
Azure 監視器合作夥伴解決方案 | 您可以建置 Azure 監視器與其他非 Microsoft 監視平台之間的特製化整合。 當你已經在使用合作夥伴之一時,這項整合非常實用。 |
活動記錄設定
活動記錄會使用診斷設定,但有自己的使用者介面,因為其會套用至整個訂用帳戶,而非個別資源。 此處所列的目的地資訊仍適用。 如需詳細資訊,請參閱 Azure 活動記錄。
需求和限制
本節探討需求和限制。
遙測到達目的地所需的時間
設定好診斷設定之後,資料應該會在 90 分鐘內開始流向所選目的地。 將記錄傳送至 Log Analytics 工作區時,如果資料表不存在,就會自動建立資料表。 資料表只會在第一次收到記錄時建立。 如果您在 24 小時內未收到任何資訊,則您可能遇到下列其中一個問題:
- 未產生任何記錄。
- 基礎路由機制發生錯誤。
如果您遇到問題,您可以嘗試停用設定,然後重新啟用設定。 若您繼續遇到問題,請透過 Azure 入口網站連絡 Azure 支援。
計量作為來源
匯出計量有某些限制:
- 目前不支援透過診斷設定傳送多維度計量。 跨維度值所彙總的維度計量會匯出為扁平化單一維度計量。 例如,可以探索區塊鏈上的 IOReadBytes 計量,並將其依個別節點層級圖表化。 然而,透過診斷設定匯出時,匯出的計量會顯示所有節點的所有讀取位元組。
- 並非所有計量都可以使用診斷設定匯出。 由於內部限制,並非所有計量都可以匯出至 Azure 監視器記錄或 Log Analytics。 如需詳細資訊,請參閱支援計量清單中的可匯出資料行。
若要解決特定計量的限制,您可以使用 Metrics REST API 手動擷取這些限制。 接著,您可以使用 Azure Monitor Data Collector API 將它們匯入至 Azure 監視器記錄。
這很重要
診斷設定不支援非 ASCII 字元的資源識別碼(例如 Preproduccón)。 如需詳細資訊,請參閱疑難排解。
目的地限制
建立診斷設定之前,必須先建立診斷設定的目的地。 如果進行設定的使用者對兩個訂用帳戶擁有適當的 Azure 角色型存取控制,目的地就不一定要與資源傳送記錄位於相同的訂用帳戶。 使用 Azure Lighthouse 也可以將診斷設定傳送至另一個 Microsoft Entra 租用戶的工作區、儲存體帳戶或事件中樞。
下列資料表提供每個目的地的唯一需求,包括任何區域限制。
目的地 | 需求 |
---|---|
Log Analytics 工作區 | 工作區不必位於與受監視資源相同的區域中。 |
記憶體帳戶 | 請勿使用有其他非監視資料儲存在其中的現有儲存體帳戶。 分割資料類型可以讓您更妥善地控制資料的存取。 若要將活動記錄與資源記錄封存在一起,可以選擇使用相同的儲存體帳戶,將所有監視資料保留在中央位置。 若要防止修改資料,請將資料傳送至不可變儲存體。 如設定並管理 Azure Blob 儲存體的不變性原則所述,設定儲存體帳戶的不可變原則。 您必須遵循此連結文章中所有的步驟,包括啟用受保護的附加 Blob 寫入。 若是區域資源,則儲存體帳戶必須位於與受監視資源相同的區域中。 啟用虛擬網路時,診斷設定無法存取儲存體帳戶。 您必須啟用 [允許受信任的 Microsoft 服務] 以略過儲存體帳戶的此防火牆設定,讓 Azure 監視器診斷設定服務獲授儲存體帳戶的的存取權。 Azure DNS 區域端點 (預覽) 和任何 進階記憶體帳戶 都不支援作為記錄或計量目的地。 支援任何 標準記憶體帳戶 。 |
事件中樞 | 命名空間的共用存取原則會定義串流機制的權限。 串流處理至事件中樞需要「管理」、「傳送」及「接聽」權限。 若要更新診斷設定以包括串流,您必須擁有事件中樞授權規則的 ListKey 權限。 若是區域資源,則事件中樞命名空間必須位於與受監視資源相同的區域中。 啟用虛擬網路時,診斷設定無法存取事件中樞資源。 您必須在事件中樞啟用 [允許受信任的 Microsoft 服務] 以略過事件中樞的此防火牆設定,讓 Azure 監視器診斷設定服務獲授事件中樞資源的存取權。 |
合作夥伴解決方案 | 解決方案會因合作夥伴而有所不同。 如需詳細資訊,請參閱 Azure 原生 ISV 服務文件。 |
Application Insights 的診斷記錄
如果您想要將 Application Insights 的診斷記錄儲存在 Log Analytics 工作區,請勿將該記錄傳送至 Application Insights 資源所在的相同工作區。 此設定可能會導致顯示重複的遙測,因為 Application Insights 已儲存此資料。 將 Application Insights 記錄傳送至不同的 Log Analytics 工作區。
將 Application Insights 記錄傳送至不同的工作區時,請注意,Application Insights 會跨 Application Insight 資源 (包括多個 Log Analytics 工作區) 存取遙測。 限制 Application Insights 使用者的存取權,僅能存取與 Application Insights 資源連結的 Log Analytics 工作區。 將存取控制模式設為 [需要工作區權限],並透過 Azure 角色型存取控制管理權限,以確保 Application Insights 只能存取 Application Insights 資源所在的 Log Analytics 工作區。
控制成本
在 Log Analytics 工作區中收集資料會產生成本,因此請只收集每個服務所需的類別。 服務之間的資源記錄資料量差異很大。
您可能也不需要從 Azure 資源收集平台計量,因為您已在計量中收集此資料。 僅當您在工作區中需要計量資料以使用記錄查詢進行更複雜的分析時,才將診斷資料設定為收集計量。 診斷設定不允許細微篩選資源記錄。
小提示
如需降低 Azure 監視器成本的策略,請參閱成本最佳化和 Azure 監視器。
故障排除
不支援計量類別
部署診斷設定時,您會收到類似「不支援計量類別 'xxxx'」的錯誤訊息。 即使您先前的部署成功,還是可能會收到此錯誤。
使用 Resource Manager 範本、REST API、Azure CLI 或 Azure PowerShell 時會發生此問題。 因為只會顯示支援的類別名稱,透過 Azure 入口網站建立的診斷設定不會受到影響。
除了有限數量的 Azure 服務之外,不支援 AllMetrics
以外的計量類別。 部署診斷設定時,先前會忽略其他類別名稱,並將其重新導向至 AllMetrics
。 自 2021 年 2 月起,提供的計量類別會經過驗證。 這項變更導致某些部署失敗。
若要修正此問題,請更新您的部署,以移除 以外的 AllMetrics
任何計量類別名稱。 如果部署新增多個類別,則只使用一個 AllMetrics
類別。 若您繼續遇到問題,請透過 Azure 入口網站連絡 Azure 支援。
設定會因為 resourceID 中的非 ASCII 字元而消失
診斷設定不支援非 ASCII 字元的資源識別碼(例如 Preproduccón)。 由於您無法在 Azure 中重新命名資源,因此您必須建立沒有非 ASCII 字元的新資源。 如果字元位於資源群組中,您可以將資源移至新的群組。
重複或已卸除資料的可能性
雖然系統會盡一切努力確保所有記錄資料都正確傳送至目的地,但無法保證端點之間記錄的 100% 資料傳輸。 適當的重試及其他機制將有助於解決這些問題,並嘗試確保記錄資料抵達端點。
非使用中資源
當資源處於非使用中狀態並匯出零值計量時,診斷設定匯出機制會逐步退避,以避免匯出和儲存零值的不必要成本。 退避可能導致下一個非零值的匯出延遲。
當資源處於非使用中狀態一小時,匯出機制會退避為 15 分鐘。 這表示要匯出的下一個非零值最多可能會延遲 15 分鐘。 在非使用狀態七天之後,達到兩個小時的最大退避時間。 一旦資源開始匯出非零值,匯出機制就會還原為 3 分鐘的原始匯出延遲。
此行為僅適用於導出的計量,且不會影響以計量為基礎的警示或自動調整。
為什麼在啟用診斷設定之後,在 Application Insights 中看到重複的遙測?
當您啟用診斷設定,將工作區型 Application Insights 數據匯出至任何 Log Analytics 工作區,包括已儲存 Application Insights 數據的相同工作區時,查詢會傳回重複的結果。 因為預設管線和診斷設定都會將相同的數據傳送至工作區,因此會發生此重複。
若要避免重複的遙測,請勿設定診斷設定將數據傳送至相同的工作區。 如果您需要將數據匯出至不同的工作區,請使用資料收集規則 (DCR) 搭配轉換和自定義資料表。 此設定會在擷取之前先篩選數據,並防止查詢中的重複記錄。