此參考架構示範如何使用 Azure 監視器來監視在虛擬機 (VM) 中執行的作業系統 (OS) 工作負載的效能和可用性。 VM 可以位於 Microsoft Azure、內部部署環境中,或位於非 Azure 雲端中。
架構
下載此架構的 Visio 檔案。
工作流程
- 內部部署主要辦公室 - VM 1。 此元件是具有因特網存取權和公開網頁,以及已安裝Log Analytics和相依性代理程式的Web應用程式。 如需代理程式的相關信息,請參閱 Log Analytics 代理程式概觀和 Azure 監視器代理程式概觀、相依性代理程式。
- 內部部署主要辦公室 - VM 2。 此商業規則環境沒有因特網存取權。 不過,它確實已安裝Log Analytics和相依性代理程式。
- 內部部署主要辦公室 - VM 3。 此元件是沒有因特網存取的數據存放區,但已安裝Log Analytics和相依性代理程式。
- 內部部署主要辦公室 - Log Analytics 閘道。 Log Analytics 閘道會從三部內部部署 VM 收集記錄和計量數據,並透過 埠 443 上的傳輸控制通訊協定 (TCP) 將它們傳遞到 Log Analytics 工作區 。
- 內部部署主要辦公室 - 防火牆。 來自內部部署環境的流量會透過防火牆路由傳送。
- 閘道。 閘道會提供分公司的連線能力。
- 內部部署分公司 - VM 4。 此元件是在沒有因特網存取的情況下執行的商務應用程式,但已安裝Log Analytics和相依性代理程式。 安裝在 VM 上的 Log Analytics 代理程式已設定為將數據直接傳輸到 Log Analytics 工作區,而不需要 Log Analytics 閘道。
- 內部部署分公司 - 閘道。 此閘道會透過虛擬專用網 (VPN) 將分公司連線到內部部署主要辦公室。
- 第三方雲端提供者 - VM 5。 此元件是具有因特網存取權、公開網頁,以及已安裝Log Analytics和相依性代理程式的Web應用程式。
- 第三方雲端提供者 - VM 6。 此元件是沒有因特網存取的數據存放區環境,但已安裝Log Analytics和相依性代理程式。 沒有從第三方雲端提供者環境到內部部署環境的直接連線。
- Azure - VMSS。 這是使用 Azure 虛擬機器擴展集 所建立的擴展集。 它會執行已安裝記錄分析和診斷代理程式的商務應用程式。
- Azure - 應用程式伺服器。 此伺服器具有執行商務應用程式的單一 VM,並已安裝 Log Analytics 和診斷代理程式。
- Azure 監視器計量。 Azure 監視器計量收集的數據會儲存在經過優化以分析時間戳數據的時間序列資料庫中。 它也會儲存從內部部署 VM 和 Azure VM 傳送的計量。
- Azure 監視器 - Log Analytics 工作區。 此工作區會儲存從內部部署 VM、Azure VM 和第三方雲端提供者上的 VM 傳送的記錄。 工作區是匯總數據的 Azure 資源,其可作為存取此數據的系統管理界限。 其他 Azure 監視器服務接著會連線到 Log Analytics 工作區,並針對各種用途使用數據。 如需詳細資訊,請參閱設計 Azure 監視器記錄部署。
- Azure 監視器 - Insights - Application Insights。 Application Insights 提供應用程式的分析,並深入解析其使用方式。 在此範例架構中,可用性 Ping 測試會檢查內部部署 Web 應用程式的可用性。 啟用警示規則以提供失敗測試的通知。 如需詳細資訊,請參閱 什麼是 Application Insights? 和 監視任何網站的可用性。
- Azure 監視器 - 深入解析 - 適用於 VM 的 Azure 監視器。 適用於 VM 的 Azure 監視器 監視虛擬機和虛擬機擴展集的效能和健康情況。 監視包含其執行中的進程和其他資源的相依性。 在此案例中,適用於 VM 的 Azure 監視器 會提供虛擬機的深入解析。 如需詳細資訊,請參閱什麼是 適用於 VM 的 Azure 監視器?。
- Azure 監視器 - 分析。 使用 Kusto 查詢語言 (KQL) 在 Azure 監視器計量和 Log Analytics 工作區內查詢來自 VM 的記錄和計量數據。 結果提供基礎結構、拓撲和資源深入解析。 如需詳細資訊,請參閱 Kusto:概觀 和 Azure 監視器記錄查詢範例。
- Azure 監視器 - 視覺效果。 Azure 監視器會使用視覺效果工具來檢閱應用程式與基礎結構元件,以及 Azure 監視器中服務之間的通訊。 視覺效果工具包括 Azure 應用程式 Insight 中的應用程式對應、適用於 VM 的 Azure 監視器 的地圖功能、Azure 監視器活頁簿,以及 Azure 監視器內可用的各種儀錶板檢視。 如需詳細資訊,請參閱使用 適用於 VM 的 Azure 監視器的對應功能來瞭解應用程式元件、建立和共用Log Analytics資料的儀錶板,以及 Azure 監視器活頁簿。
- Azure 監視器 - 整合。 Azure 監視器會與一系列合作夥伴和第三方工具和延伸模組整合。 這些工具和延伸模組會增強並建置現有的 Azure 監視器功能,例如分析和視覺效果。
- Azure 監視器 - 動作 - 警示。 計量和記錄數據的變化可以指出事件的發生。 規則會定義觸發警示、提供通知,以及起始補救回應的數據變化。 在此架構中,觸發警示時,自動化 Runbook 會自動補救內部部署 VM 和 Azure VM。 Webhook 動作、服務管理整合和其他動作類型也可供使用。 如需詳細資訊,請參閱使用 Azure 監視器建立、檢視及管理計量警示和使用 Azure 監視器建立、檢視及管理記錄警示。
- Azure 監視器 - 動作 - 自動調整。 自動調整會根據 deman 新增或移除 VM 實例,以維持效能並提升成本效益。 在此架構中,自動調整有圍繞平均CPU負載定義的條件(以百分比為單位)。 符合條件時,Azure 監視器自動調整會根據需求調整擴展集。 如需詳細資訊,請參閱Microsoft Azure 自動調整概觀。
元件
此架構由下列元件組成:
建議
下列最佳做法是適用於大部分案例的建議。 除非您有覆寫這些做法的特定需求,否則請遵循這些做法。
Log Analytics 工作區
設計 Log Analytics 工作區時,請考慮下列建議:
- 如果延遲是重要的因素,請將工作區和資源放在相同的 Azure 區域中。
- 從單一 Log Analytics 工作區開始,並在需求變更時增加工作區數目。
- 如果您有分散地理位置的小組和資源,則每個區域可能需要一個工作區。
- 您的工作區不需要與您執行的資源位於相同的訂用帳戶中。
警示
針對較簡單的案例,您可以使用計量來標記警示,而不是記錄。 計量:
- 提供 CPU 使用量、可用記憶體或邏輯磁碟空間等事件的計數或 數值。
- 有低延遲。
- 提供更高的粒度,例如每秒或每分鐘間隔。
- 快速通知您問題。
若要收集自定義效能指標或商務特定計量以提供更深入的深入解析,請使用自定義計量。 如需詳細資訊,請參閱 Azure 監視器中的自定義計量(預覽版)。
計量警示在所有情況下都不是答案。 當您需要更多自定義或更強大的相互關聯時,您可能仍想要使用記錄型警示。
分析和診斷
請考慮下列分析和診斷建議:
使用記錄進行更深入的分析。 記錄可以:
- 提供事件的詳細資訊(與計量相比)。
- 間歇性發生。
- 協助在初始計量旗標之後進行更深入的診斷。
使用 HTTP 資料收集器 API 自訂記錄資料收集(類似於計量),以將記錄數據傳送至 Log Analytics 工作區。 如需詳細資訊,請參閱使用 HTTP 資料收集器 API 將記錄資料傳送至 Azure 監視器(公開預覽)。
使用 Application Insight 的智慧偵測 功能主動分析您的應用程式。 智慧偵測會套用 Azure 的機器學習功能和統計分析 ,以偵測效能或失敗異常、記憶體流失或一般應用程式降低等問題。 如需詳細資訊,請參閱 Application Insights 中的智慧偵測。
使用 適用於 VM 的 Azure 監視器 - 對應以檢閱跨任何 TCP 連線架構的伺服器、進程、輸入和輸出連線延遲,以及埠之間的連線。 除了安裝代理程式以外,不需要任何設定。 使用 適用於 VM 的 Azure 監視器 - 對應,您可以以互連系統的形式與伺服器互動並互動。
Log Analytics 查詢
使用 KQL 來搜尋字詞、特定事件或狀態,以識別趨勢和分析模式,以查詢 Log Analytics 工作區中的數據。 使用查詢總 管 來瀏覽並選取預先撰寫的查詢、修改查詢,或建立您自己的查詢。 您可以從工作區內執行、儲存、共用和匯出查詢,並將您最愛的查詢釘選到儀錶板以供重複使用。
代理程式安裝
使用自動化選項,例如 Azure 原則、Azure PowerShell、Resource Manager 範本或 Desired 狀態設定 (DSC),自動和大規模安裝代理程式,而不是個別安裝代理程式。 如需詳細資訊,請參閱使用 Azure 原則 啟用 適用於 VM 的 Azure 監視器、使用 Azure PowerShell 啟用 適用於 VM 的 Azure 監視器,以及啟用混合式虛擬機的 適用於 VM 的 Azure 監視器 - Desired 狀態設定。
儀表板
針對重要應用程式,請建立 Azure 儀錶板 檢視。 即時在共享畫面上共用或讓您的儀錶板可供需要重要應用程式數據的人員使用。
考量
這些考量能實作 Azure Well-Architected Framework 的支柱,其為一組指導原則,可以用來改善工作負載的品質。 如需更多資訊,請參閱 Microsoft Azure 結構完善的架構。
可靠性
可靠性可確保您的應用程式符合您對客戶的承諾。 如需更多資訊,請參閱可靠性支柱的概觀。
下列考慮有助於確保環境中的可用性。
- 可用性測試。 此架構中使用的 URL Ping 測試是最簡單的 外部 可用性測試。 不過,還有其他選項可供使用,例如:
- 多步驟 Web 測試。 播放循序 Web 要求的錄製,以測試複雜的案例。 在 Visual Studio Enterprise Microsoft中建立多步驟 Web 測試,然後上傳至入口網站以執行。
- 自訂追蹤可用性測試。
TrackAvailability()
使用方法將測試結果傳送至 Application Insights。
- 警示。 當您在 Application Insights 中建立可用性測試時,預設會啟用事件警示通知。 您可以從 Azure 監視器>警示指定通知類型和詳細數據,以編輯警示規則。
安全性
安全性可提供保證,以避免刻意攻擊和濫用您寶貴的資料和系統。 如需詳細資訊,請參閱安全性支柱的概觀。
下列專案是讓您的環境更安全的考慮。
- Log Analytics 工作區。 存取模式定義為下列其中一個內容:
- 工作區內容。 您可以查詢工作區有權存取的所有記錄。 這是垂直存取方法。 例如,安全性小組可能需要從上到下存取所有資源數據。
- 資源內容。 只能查詢特定資源的記錄。 例如,應用程式小組可以獲授與他們所處理之特定資源的記錄存取權。
- 保護傳輸至 Log Analytics 的數據。 傳輸中的數據會使用最低傳輸層安全性 (TLS) 1.2 來保護。 您不需要明確啟用此功能。 如需詳細資訊,請參閱 Log Analytics資料安全性。
- 保護 Log Analytics 中的待用數據。 根據 Azure 儲存體,Log Analytics 中的待用數據預設會使用 256 位進階加密標準 (AES) 加密來保護。
- 智慧偵測。 使用 Application Insights 中的智慧偵測來分析應用程式所產生的遙測,以及偵測安全性問題。 如需詳細資訊,請參閱應用程式安全性偵測套件(預覽版)。
- 整合 Azure 監視器與安全性資訊和事件管理 (SIEM) 工具。 使用 Azure 監視器將監視數據路由傳送至事件中樞,以整合外部 SIEM 和監視工具。 如需詳細資訊,請參閱 將 Azure 監視數據串流至事件中樞或外部合作夥伴。
成本最佳化
成本最佳化是關於考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱成本最佳化支柱的概觀。
下列專案是控制和管理環境中成本的考慮。
- Azure 監視器。 Azure 監視器成本是以使用量為基礎,通常稱為 隨用隨付。
- Log Analytics。 您需要支付 數據擷取 和數據 保留的費用。 您可以估計和預測 VM 數目,以及您預期從每個 VM 收集的數據量(以 GB 為單位)。 典型的 Azure VM 每個月會取用 1 GB 到 3 GB 的數據。 如果您要使用 Azure 監視器記錄來評估數據使用量,請使用來自您自己環境的數據統計數據,並使用 容量保留取得折扣。
- Application Insights。 此元件會根據應用程式所傳送的遙測數據量,以及您執行的 Web 測試數目來計費。
- 計量查詢。 計量查詢的計費方式是呼叫次數。
- 警示。 警示會根據所監視訊號的類型和數目來計費。
- 通知。 通知會根據您傳送的通知類型和號碼來計費。
- Azure 監視器。 Azure 監視器的 [ 使用量和估計成本 ] 區段會根據過去 31 天的使用量來預估您的每月成本。
- 如需詳細資訊,請參閱 Azure 監視器定價和定價計算機。
卓越營運
卓越營運涵蓋部署應用程式並使其持續在生產環境中執行的作業流程。 如需詳細資訊,請參閱卓越營運支柱的概觀 (部分機器翻譯)。
管理能力
以下是讓您的環境更容易管理時的考慮。
- Azure 活頁簿。 使用活頁簿來協助執行進一步的分析,並建立豐富的報表。 活頁簿會將文字、記錄查詢、計量和參數合併成互動式報表。 可存取相同 Azure 資源的小組成員可以編輯活頁簿。 如需詳細資訊,請參閱使用活頁簿建立互動式報表 適用於 VM 的 Azure 監視器。
- 合作夥伴整合。 整合 Azure 監視器與合作夥伴和第三方工具,以協助分析、視覺效果、警示或服務管理和 Azure Pipelines。 如需詳細資訊,請參閱 Azure 監視器合作夥伴整合。
- 整合 Azure 監視器與 Microsoft System Center。 整合 Azure 監視器與 System Center 產品套件。 如需詳細資訊,請參閱將 Operations Manager 連線至 Azure 監視器。
- 將數據傳送至 Azure 事件中樞。 若要整合 Azure 監視器與視覺效果和外部監視工具,請參閱 將 Azure 監視數據串流至事件中樞或外部合作夥伴。
- Log Analytics 閘道。 對於較小型的環境,例如分公司,請使用代理程式將數據傳輸到Log Analytics工作區,而不是傳送到閘道。 如需詳細資訊,請參閱 建立 Azure Log Analytics 的連線能力。
DevOps
以下是整合環境與 DevOps 程式和解決方案的考慮。
- Application Insights。 將 Application Insights 整合到 Azure Pipelines 中,以協助改善效能和可用性。 Application Insights 可以自動偵測效能異常。 它會連線到各種開發工具,例如 Azure DevOps Services 和 GitHub。
- 應用程式檢測。
修改應用程式程式代碼以啟用Application Insights的遙測,以檢測 應用程式。 下列方法是檢測應用程式的方法:
- 在運行時間。 在運行時間檢測伺服器上的 Web 應用程式很適合已部署的應用程式,因為它可避免更新程式碼。 適當的案例包括:
- 裝載在 Azure Web Apps 上的 Microsoft ASP.NET 或 ASP.NET Core 應用程式
- ASP.NET 虛擬機或虛擬機擴展集上裝載於 Microsoft 網際網路資訊服務 (IIS) 的應用程式
- ASP.NET 裝載於內部部署 VM 上的 IIS 應用程式
- 以 Java 為基礎的 Azure Functions
- 在 Linux App Services 上Node.JS應用程式
- 裝載在 AKS 上的微服務
- 在開發階段。 將 Application Insights 新增至您的程式代碼,以自定義遙測集合並傳送更多數據。 支援的語言與平臺包括:
- ASP.NET 應用程式
- ASP.NET Core 應用程式
- .NET 主控台應用程式
- Java
- Node.js
- Python
- 在運行時間。 在運行時間檢測伺服器上的 Web 應用程式很適合已部署的應用程式,因為它可避免更新程式碼。 適當的案例包括:
- 使用 IT 服務管理連接器 (ITSMC) 連線到外部 IT 服務管理 (ITSM) 工具。 ITSMC 會將 Azure 連線到支援的 ITSM 產品和服務,而問題相關的工作專案通常位於其中。 如需詳細資訊,請參閱 使用IT服務管理連接器將 Azure 連線到 ITSM 工具。
效能效益
效能效率是工作負載以有效率的方式調整的能力,以符合使用者放置的需求。 如需詳細資訊,請參閱效能效率支柱概觀。
以下是調整環境時的考慮。
- 自動安裝和設定您的資源和應用程式。
- 大規模分散的地理位置應用程式。 使用 Application Insights 內的分散式追蹤 來追蹤多個應用程式元件、後端資源和微服務環境的相依性和呼叫。 使用 分散式追蹤 ,您可以針對跨進程界限呼叫的應用程式進行偵錯,並位於本機堆棧之外。 (您不需要啟用 分散式追蹤,它會自動作為 App Insights 的一部分提供。
- 使用分散式追蹤資料的兩個選項如下:
- 交易診斷體驗。 此體驗類似於具有新增時間維度的呼叫堆疊。 交易診斷體驗提供單一交易/要求的可見度。 對於尋找可靠性問題的根本原因,以及每個要求的效能瓶頸非常有幫助。 如需詳細資訊,請參閱 什麼是分散式追蹤?
- 應用程式對應體驗。 這會匯總許多交易,以示範系統如何以拓撲方式互動,並提供平均效能和錯誤率。 如需詳細資訊,請參閱 應用程式對應:分級分散式應用程式。
- 使用分散式追蹤資料的兩個選項如下:
下一步
深入瞭解元件技術: