Azure 監視器自動調整的最佳作法
本文提供 Azure 監視器記錄的架構最佳做法。 此指導方針是以 Azure Well-Architected Framework 中所述卓越的五大架構要素為基礎。
可靠性
可靠性是指系統從失敗中復原並繼續運作的能力。 目標是儘量減少單一失敗元件的影響。 使用下列資訊將 Log Analytics 工作區的失敗降到最低,並保護其收集的資料。
Log Analytics 工作區提供高度的可靠性。 擷取管線將收集到的資料傳送到 Log Analytics 工作區,在從管線中移除記錄之前,驗證 Log Analytics 工作區是否成功處理了每條記錄。 如果擷取管線不可用,則傳送資料緩衝區並重試傳送記錄的代理程式將持續數小時。
增強韌性的 Azure 監視器記錄功能
Azure 監視器記錄提供了幾個功能,可以增強工作區對各種類型問題的韌性。 您可以根據需求單獨或組合使用這些功能。
此影片提供了 Log Analytics 工作區可用的可靠性和韌性選項之概觀:
使用可用性區域進行區域內保護
每個支援可用性區域的 Azure 區域都有一組配備獨立電源、冷卻和網路基礎結構的資料中心。
Azure 監視器記錄可用性區域為 [備援],這表示 Microsoft 在支援的區域中跨不同區域散佈服務要求和複寫資料。 如果事件影響一個區域,Microsoft 將自動使用區域中的其他可用性區域。 由於區域之間的切換是無縫的,您不需要採取任何動作。
在大多數區域,Azure 監視器記錄可用性區域支援 [資料韌性],這表示您的已儲存資料受到保護,不會因區域失敗而造成資料外洩,但服務作業仍可能受區域事件的影響。 如果服務無法執行査詢,在問題解决之前,您將無法檢視記錄。
支援資料韌性的可用性區域的子集也支援 [服務韌性],這表示 Azure 監視器記錄服務作業 (例如記錄擷取、査詢和警示) 可以在區域發生失敗時繼續進行。
可用性區域可防止與基礎結構相關的事件,如儲存體失敗。 它們不能抵禦應用程式層級問題,如錯誤的程式碼部署或憑證失敗,這些問題會影響整個區域。
使用連續匯出從特定資料表備份資料
您可以 [將傳送到 Log Analytics 工作區中特定資料表的資料連續匯出] 到 Azure 儲存體帳戶。
您匯出資料的儲存體帳戶必須與 Log Analytics 工作區位於同一區域。 為了保護和存取您內嵌的記錄,即使工作區區域已關閉,也請使用 GRS 帳戶,如 [設定建議] 中所述。
匯出機制不能抵禦影響擷取管線或匯出流程本身的事件。
注意
您可以使用 [外部資料運算子] 從 Azure 監視器記錄存取儲存體帳戶中的資料。 然而,匯出的資料儲存在五分鐘 blob 中,分析跨越多個 blob 的資料可能很麻煩。 因此,將資料匯出到儲存體帳戶是一種很好的資料備份機制,但如果需要在 Azure 監視器記錄中進行分析,將資料備份在儲存體帳戶中並不理想。 您可以使用 [Azure Data Explorer]、[Azure Data Factory] 或任何其他儲存體存取工具査詢大量 blob 資料。
使用工作區複寫 (預覽) 的跨區域資料保護和服務韌性
工作區複寫 (預覽) 是最廣泛的韌性解決方案,因為它將 Log Analytics 工作區和傳入記錄複寫到另一個區域。
工作區複寫保護您的記錄和服務作業,並允許您在發生與基礎結構或應用程式相關的全區域事件時繼續監視您的系統。
與 Microsoft 端對端管理的可用性區域不同,您需要監視主要工作區的健康情況,並决定何時切換到次要區域中的工作區以及何時切換回來。
設計檢查清單
- 為確保服務和資料對全區域事件的韌性,請啟用工作區複寫。
- 為了確保對資料中心失敗的區域內保護,請在支援可用性區域的區域中建立工作區。
- 對於特定資料表中的跨區域資料備份,請使用連續匯出功能將資料傳送到異地複寫的儲存體帳戶。
- 監視 Log Analytics 工作區的健康情況。
組態建議
建議 | 優點 |
---|---|
為了確保最大程度的韌性,請啟用工作區複寫。 | 工作區資料和服務作業的跨區域韌性。 [工作區複寫 (預覽)] 透過在另一個區域建立工作區的次要執行個體並將記錄內嵌到兩個工作區來確保高可用性。 需要時,請切換至次要工作區,直到影響主要工作區的問題得到解决。 您可以在次要工作區中繼續内嵌記錄、査詢資料、使用儀表板、警示和 Sentinel。 您還可以存取在區域切換之前内嵌的記錄。 這是付費功能,因此請考慮是要複寫所有傳入記錄,還是只是一些資料流。 |
如果可能,請在支援 Azure 監視器服務韌性的區域中建立您的工作區。 | [資料中心發生問題時,工作區資料和服務作業的區域內韌性。] 支援服務韌性的可用性區域也支援資料韌性。 這表示,即使整個資料中心無法使用,區域之間的備援也允許 Azure 監視器服務作業 (如擷取和査詢) 以繼續運作,並且您内嵌的記錄保持可用。 可用性區域提供區域內保護,但不能抵禦影響整個區域的問題。 如需哪些區域支援資料韌性的資訊,請參閱 [使用可用性區域增強 Azure 監視器記錄中的資料和服務韌性]。 |
在支援資料韌性的區域中建立您的工作區。 | [在資料中心發生問題時,提供區域內保護,防止工作區中的記錄外洩]。 在支援資料韌性的區域中建立工作區表示,即使整個資料中心不可用,您内嵌的記錄也是安全的。 如果服務無法執行査詢,在問題解决之前,您將無法檢視記錄。 如需哪些區域支援資料韌性的資訊,請參閱 [使用可用性區域增強 Azure 監視器記錄中的資料和服務韌性]。 |
設定從特定資料表到跨區域複寫的儲存體帳戶之資料匯出。 | [在不同區域維護記錄資料的備份副本]。 Azure 監視器的資料匯出功能可讓您將傳送至特定資料表的資料連續匯出至 Azure 儲存體,以便保留一段時間。 使用 GRS 或異地區域備援儲存體 (GZRS) 帳戶來保護您的資料安全,即使整個區域變得無法使用。 若要使您的資料可以從其他區域讀取,請為您的儲存體帳戶設定次要區域的讀取存取。 如需詳細資訊,請參閱 [次要區域上的 Azure 儲存體備援] 和 [次要區域中資料的 Azure 儲存體讀取存取]。 對於 [不支援連續資料匯出的資料表],您可以使用其他匯出資料的方法,包括 Logic Apps,來保護您的資料。 這個解決方案主要是為了遵循資料保留合規性,因為該資料可能難以分析和還原至工作區。 資料匯出容易受到區域事件的影響,因為其依賴您區域中 Azure 監視器擷取管線的穩定性。 針對影響區域擷取管線的事件,該功能無法提供復原能力。 |
監視 Log Analytics 工作區的健康情況。 | 使用 Log Analytics 工作區深入解析來追蹤失敗的查詢,並建立健全狀態警示,以便在工作區因資料中心或區域性失敗而無法使用時主動通知您。 |
比較 Azure 監視器記錄韌性功能
功能 | 服務復原能力 | 資料備份 | 高可用性 | 保護範圍 | 設定 | 成本 |
---|---|---|---|---|---|---|
工作區複寫 | ✅ | ✅ | ✅ | 跨區域保護,抵禦發生全區域事件 | 啟用工作區和相關資料收集規則的複寫。 根據需要在區域之間切換。 | 根據複寫的 GB 數量和區域。 |
可用性區域 | ✅ 在支援的區域內 |
✅ | ✅ | 針對資料中心問題的區域內保護 | 在支援的區域中自動啟用。 | 無成本 |
連續資料匯出 | ✅ | 抵禦因區域失敗導致的資料外洩 1 | 為每個資料表啟用。 | 資料導出 + 儲存體 Blob 或事件中樞的成本 |
1 如果將記錄匯出至異地複寫的儲存體帳戶,資料匯出將提供跨區域保護。 發生事件時,先前匯出的資料會備份並隨時可用;不過根據事件的性質不同,進一步匯出可能會失敗。
安全性
安全性是任何架構中最為重要的部分。 Azure 監視器提供了採用最低權限和深度防禦準則的功能。 使用下列資訊,將 Log Analytics 工作區的安全性最大化,並確保只有授權使用者能夠存取收集的資料。
設計檢查清單
- 判斷是否要在相同的 Log Analytics 工作區中結合操作資料和安全性資料。
- 設定工作區中不同類型資料的存取權,以對應要求組織中的不同角色。
- 請考慮使用 Azure 私人連結,移除公用網路對工作區的存取權。
- 如果您需要用自己的加密金鑰來保護工作區中的資料和已儲存查詢,請使用客戶自控金鑰。
- 匯出稽核資料以長期保留或維持不變。
- 設定記錄查詢稽核,以追蹤正在執行查詢的使用者。
- 決定在工作區中篩選或混淆敏感資料的策略。
- 清除意外收集到的敏感資料。
- 啟用適用於 Microsoft Azure 的客戶加密箱,以核准或拒絕 Microsoft 資料存取要求。
組態建議
建議 | 優點 |
---|---|
判斷是否要在相同的 Log Analytics 工作區中結合操作資料和安全性資料。 | 是否要結合此資料取決於您的特定安全性需求。 將其結合至單一工作區中可讓您更清楚地看到所有資料,不過您的安全性小組可能需要專屬的工作區。 請參閱設計 Log Analytics 工作區策略,了解為環境制定此決策並與其他要素中準則達到平衡的詳細資料。 權衡取捨:在您的工作區中啟用 Microsoft Sentinel 的潛在成本影響。 詳情請參閱設計 Log Analytics 工作區架構。 |
設定工作區中不同類型資料的存取權,以對應要求組織中的不同角色。 | 將工作區的存取控制模式設定為 [使用資源或工作區權限],以允許資源擁有者使用資源內容來存取其資料,而不授與工作區的明確存取權。 這可簡化您的工作區設定,並有助於確保使用者無法存取他們不應存取的資料。 指派適當的內建角色以根據其責任範圍,將工作區權限授與訂用帳戶、資源群組或工作區層級的系統管理員。 如果使用者需要存取一組跨多個資源的資料表,請採用資料表層級 RBAC。 具有資料表權限的使用者無論其資源權限為何,都可以存取該資料表中的所有資料。 如需授與工作區中資料存取權的不同選項詳細資訊,請參閱管理對 Log Analytics 工作區的存取。 |
請考慮使用 Azure 私人連結,移除公用網路對工作區的存取權。 | 透過端對端加密來保護與公用端點的連線。 如果您需要私人端點,可以使用 Azure 私人連結,讓資源透過授權的私人網路連線到 Log Analytics 工作區。 私人連結還可以用於透過 ExpressRoute 或 VPN 強制擷取工作區資料。 請參閱設計您的 Azure Private Link 設定,以判斷您環境的最佳網路和 DNS 拓撲。 |
如果您需要用自己的加密金鑰來保護工作區中的資料和已儲存查詢,請使用客戶自控金鑰。 | Azure 監視器可確保所有資料和已儲存的查詢都會使用 Microsoft 管理的金鑰 (MMK) 在待用時加密。 如果您需要自己的加密金鑰,並為專用叢集收集足夠的資料,請使用客戶自控金鑰以取得更大的彈性和金鑰生命週期控制權。 如果您使用 Microsoft Sentinel,請確定您已熟悉設定 Microsoft Sentinel 客戶自控金鑰中的考量事項。 |
匯出稽核資料以長期保留或維持不變。 | 您可能已在工作區中收集稽核資料,該資料受限於法規而需要其長期保留。 Log Analytics 工作區中的資料無法變更,但可以清除。 使用資料匯出將資料傳送至具有不變性原則的 Azure 儲存體帳戶,以防止資料遭到竄改。 並非所有類型的記錄都會用於合規性、稽核或安全性,因此請判斷應該導出的特定資料類型。 |
設定記錄查詢稽核,以追蹤正在執行查詢的使用者。 | 記錄查詢稽核會記錄工作區中所執行每個查詢的詳細資料。 系統會將此稽核資料視為安全性資料,並妥善保護 LAQueryLogs 資料表。 將每個工作區的稽核記錄設定為傳送至本機工作區,或如果您將作業和安全性資料分隔,請在專用的安全性工作區中合併。 使用 Log Analytics 工作區深入解析定期檢閱此資料,並考慮建立記錄搜尋警示規則,以便在未經授權的使用者嘗試執行查詢時主動通知您。 |
決定在工作區中篩選或混淆敏感資料的策略。 | 您可能會收集到包含敏感性資訊的資料。 請使用特定資料資來源的設定來篩選不應收集的記錄。 如果只應移除或模糊處理資料中的特定資料行,請使用轉換。 如果您有要求原始資料不可修改的標準,可以使用 KQL 查詢中的 'h' 常值來混淆活頁簿中顯示的查詢結果。 |
清除意外收集到的敏感資料。 | 定期檢查工作區中有無意外收集到的私人資料,並使用資料清除將其移除。 |
啟用適用於 Microsoft Azure 的客戶加密箱,以核准或拒絕 Microsoft 資料存取要求。 | 適用於 Microsoft Azure 的客戶加密箱會提供介面讓您檢閱、核准或拒絕客戶資料的存取要求。 它用於 Microsoft 工程師需要需要存取客戶資料的情況,無論是回應客戶發起的支援憑證還是 Microsoft 所識別的問題。 若要啟用客戶加密箱,您需要專用叢集。 加密箱目前無法套用至使用輔助方案的資料表。 |
成本最佳化
成本最佳化是指設法減少不必要的費用,並提升營運效率。 您可以了解不同設定選項和機會來減少 Azure 監視器收集的資料量,藉此大幅降低其成本。 查看 Azure 監視器成本和使用量,了解 Azure 監視器收費的不同方式,以及如何檢視每月帳單。
注意
如需 Azure 監視器所有功能的成本最佳化建議,請參閱將 Azure 監視器中的成本最佳化。
設計檢查清單
- 判斷是否要在相同的 Log Analytics 工作區中結合操作資料和安全性資料。
- 針對每個 Log Analytics 工作區通常收集的資料量設定定價層。
- 設定資料保留和封存。
- 將用於偵錯、疑難排解和稽核的資料表設定為基本記錄。
- 限制工作區從資料來源收集的資料。
- 定期分析收集的資料,以識別趨勢和異常狀況。
- 建立資料收集過高的警示。
- 考慮使用每日上限作為預防性措施,以確保您不會超過特定預算。
- 針對 Log Analytics 工作區設定 Azure Advisor 成本建議的警示。
組態建議
建議 | 優點 |
---|---|
判斷是否要在相同的 Log Analytics 工作區中結合操作資料和安全性資料。 | 因為如果已啟用 Sentinel,則 Log Analytics 工作區中的所有資料都會受限於 Microsoft Sentinel 定價,因此合併此資料可能會對成本造成影響。 請參閱設計 Log Analytics 工作區策略,了解為環境制定此決策並與其他要素中準則達到平衡的詳細資料。 |
針對每個 Log Analytics 工作區通常收集的資料量設定定價層。 | 根據預設,Log Analytics 工作區會使用隨用隨付定價,沒有最低資料量。 如果您收集的資料量夠多,則可以使用承諾用量層來大幅降低成本,這可讓您藉由承諾每日最低的資料收集量來換取較低費率。 如果您在單一區域中的各個工作區上收集的資料夠多,您可以將這些工作區連結至專用叢集,並使用叢集定價來合併其收集的資料量。 請參閱 Azure 監視器記錄成本計算和選項,以取得關於定額層的詳細資料,以及最適合您使用量層級的階層判斷指引。 請參閱使用量和估計成本,以檢視不同定價層的使用量估計成本。 |
設定互動式和長期資料保留。 | 若在 Log Analytics 工作區中保留資料超過預設的 31 天則須付費 (在已啟用 Microsoft Sentinel 的工作區上為 90 天,而 Application Insights 資料也是 90 天)。 請考量您的特定需求,讓資料可方便記錄查詢使用。 您可以藉由設定長期保留來大幅降低成本,這可讓您將資料保留最多十二年,而且仍可使用搜尋作業或將一組資料還原至工作區來偶爾存取資料。 |
將用於偵錯、疑難排解和稽核的資料表設定為基本記錄。 | Log Analytics 工作區中專為基本記錄設定的資料表可降低擷取成本,但功能有限,查詢記錄也會收費。 如果您不常查詢這些資料表,而且不會將其用於警示,此查詢成本可能會高於降低擷取成本抵銷的費用。 |
限制工作區從資料來源收集的資料。 | Azure 監視器成本的主要因素是 Log Analytics 工作區中收集的資料量,因此您應確保收集的資料量不超過評估服務和應用程式健康情況和效能所需的資料。 請參閱設計 Log Analytics 工作區結構,了解為環境制定此決策並與其他要素中準則達到平衡的詳細資料。 權衡取捨:成本與監視需求之間可能會有所取捨。 例如,您可能能夠透過高採樣速率更快地偵測效能問題,但您可能也想要較低的採樣速率來節省成本。 大部分環境都會有多個不同收集類型的資料來源,因此您必須使特定需求與每個資料來源的成本目標達到平衡。 如需針對不同資料來源設定收集方式的建議,請參閱 Azure 監視器中的成本最佳化。 |
定期分析收集的資料,以識別趨勢和異常狀況。 | 使用 Log Analytics 工作區深入解析來定期檢閱工作區中收集的資料量。 此功能除了可協助您了解不同來源所收集的資料量之外,還會識別資料收集中可能導致成本過高的異常和上升趨勢。 使用分析 Log Analytics 工作區中的使用量中所述的方法,進一步分析資料收集,以判斷是否有其他設定可以進一步減少使用量。 當您新增一組新的資料來源 (例如一組新的虛擬機器或將新的服務上線) 時,這會特別重要。 |
建立資料收集過高的警示。 | 為了避免非預期的帳單,您應該在遇到過多使用量時主動收到通知。 通知可讓您在計費週期結束時,解決任何潛在的異常。 |
考慮使用每日上限作為預防性措施,以確保您不會超過特定預算。 | 每日上限會在達到您設定的限制之後,停用 Log Analytics 工作區中的資料收集。 這不應該當做降低成本的方法,如使用每日上限的時機中所述。 如果您設定每日上限,除了在達到上限時建立警示之外,請確定您也會建立警示規則,以在達到某個百分比時收到通知 (例如 90%)。 這可讓您在因為上限而停止資料收集之前,調查並解決資料增加的原因。 |
針對 Log Analytics 工作區設定 Azure Advisor 成本建議的警示。 | 當有機會將成本最佳化時,Log Analytics 工作區的 Azure Advisor 建議會主動提醒您。 針對下列成本建議建立 Azure Advisor 警示:
|
卓越營運
卓越營運是指服務在生產環境中可靠地執行所需的作業程式。 使用下列資訊將支援 Log Analytics 工作區的營運需求降到最低。
設計檢查清單
- 設計工作區架構時,使用最少數量的工作區來滿足您的商務需求。
- 管理多個工作區時,請使用基礎結構即程式碼 (IaC)。
- 使用 Log Analytics 工作區深入解析來追蹤 Log Analytics 工作區的健康情況和效能。
- 建立警示規則以接收工作區作業問題的主動通知。
- 確保您具有妥善定義的資料隔離作業流程。
組態建議
建議 | 優點 |
---|---|
設計工作區策略以滿足您的業務需求。 | 如需設計 Log Analytics 工作區策略的指引,請參閱設計 Log Analytics 工作區架構,其中包括建立的數量以及放置位置。 單一或最低數量的工作區數目可讓作業效率最大化,因為此做法會限制作業和安全性資料的分佈、提高潛在問題的可見度、讓模式更容易識別,並且將維護需求降至最低。 您可能有多個工作區的需求 (例如多個租用戶),或者可能需要多個區域中的工作區來支援可用性需求。 在這些情況下,請確定您有適當的流程可管理由此增加的複雜度。 |
管理多個工作區時,請使用基礎結構即程式碼 (IaC)。 | 使用基礎結構即程式碼 (IaC) 來定義 ARM、BICEP 或 Terraform 當中工作區的詳細資料。 這可讓您利用現有的 DevOps 程式來部署新的工作區和 Azure 原則,進而強制執行其設定。 |
使用 Log Analytics 工作區深入解析來追蹤 Log Analytics 工作區的健康情況和效能。 | Log Analytics 工作區深入解析提供所有工作區的使用量、效能、健康情況、代理程式、查詢和變更記錄的統一檢視。 請定期檢閱這項資訊,以追蹤每個工作區的健康情況和作業。 |
建立警示規則以接收工作區作業問題的主動通知。 | 每個工作區都有一個作業資料表,可記錄影響工作區的重要活動。 請根據此資料表建立警示規則,以在發生作業問題時主動獲得通知。 您可以使用工作區的建議警示來簡化建立最重大的警示規則。 |
確保您具有妥善定義的資料隔離作業流程。 | 針對儲存在工作區中的不同類型資料,您可能有不同的需求。 在設計工作區策略以及設定權限和長期保留等設定時,請務必清楚了解資料保留和安全性等需求。 您也應建立一個明確的已定義流程,以便不時清除意外收集到包含個人資訊的資料。 |
效能效益
效能效率讓您的工作負載能夠進行調整,以有效率的方式符合使用者對其放置的需求。 使用下列資訊來確保 Log Analytics 工作區和記錄查詢已妥善設定可發揮最高效能。
設計檢查清單
- 設定記錄查詢稽核,並使用 Log Analytics 工作區深入解析來識別緩慢且效率不佳的查詢。
組態建議
建議 | 優點 |
---|---|
設定記錄查詢稽核,並使用 Log Analytics 工作區深入解析來識別緩慢且效率不佳的查詢。 | 記錄查詢稽核會儲存執行每個查詢所需的計算時間,以及傳回結果的時間。 Log Analytics 工作區深入解析會使用此資料來列出工作區中可能效率不佳的查詢。 請考慮重新撰寫這些查詢以改善其效能。 如需將記錄查詢最佳化的指引,請參閱將 Azure 監視器中的記錄查詢最佳化。 |