此參考體系結(jié)構(gòu)演示了如何設(shè)計 Azure Monitor 來監(jiān)視 (操作系統(tǒng)的性能和可用性,) 在虛擬機中運行的工作負荷 (Vm) 中、在本地環(huán)境中,以及第三方云提供商。
下載此體系結(jié)構(gòu)的 Visio 文件。
該體系結(jié)構(gòu)包括以下組件:
本地總公司-VM 1。 這是一個具有 internet 訪問權(quán)限的 web 應(yīng)用程序和一個面向公眾的網(wǎng)頁,并同時安裝了 log analytics 和依賴項代理。 有關(guān)代理的信息,請參閱 Log Analytics 代理概述 和 Azure Monitor 代理、依賴關(guān)系代理概述。
本地總公司-VM 2。 這種業(yè)務(wù)邏輯環(huán)境無法訪問 internet。 但是,它會安裝 log analytics 和依賴關(guān)系代理。
本地總公司-VM 3。 這是一個無 internet 訪問的數(shù)據(jù)存儲,但安裝了 log analytics 和依賴關(guān)系代理。
本地總公司 Log Analytics 網(wǎng)關(guān)。 Log Analytics 網(wǎng)關(guān)從三個本地 Vm 收集日志和指標數(shù)據(jù),并通過傳輸控制協(xié)議 (TCP) 在端口443上將其傳送到 Log Analytics 工作區(qū) 。
本地總部防火墻。 進出本地環(huán)境的流量通過防火墻路由。
網(wǎng)關(guān)。 網(wǎng)關(guān)提供與分支機構(gòu)的連接。
本地分支辦公室-VM 4。 這是在沒有 internet 訪問的情況下運行的業(yè)務(wù)應(yīng)用程序,但安裝了 log analytics 和依賴項代理。 已在 VM 上安裝的 Log Analytics 代理配置為將數(shù)據(jù)直接傳輸?shù)?Log Analytics 工作區(qū),而無需 Log Analytics 網(wǎng)關(guān)。
本地分支機構(gòu)-網(wǎng)關(guān)。 此網(wǎng)關(guān)通過虛擬專用網(wǎng)絡(luò)將分支機構(gòu)連接到本地總公司 (VPN) 。
第三方云提供程序-VM 5。 這是一個具有 internet 訪問權(quán)限的 web 應(yīng)用程序,一個面向公眾的網(wǎng)頁,還安裝了 log analytics 和依賴項代理。
第三方云提供程序-VM 6。 這是一個無 internet 訪問的數(shù)據(jù)存儲環(huán)境,但同時安裝了 log analytics 和依賴項代理。 從第三方云提供商環(huán)境到本地環(huán)境沒有直接連接。
Azure-虛擬機規(guī)模集。 (VMSS) 的 Azure 虛擬機規(guī)模集是一個規(guī)模集,它在安裝了 log analytics 和診斷代理的情況運行業(yè)務(wù)應(yīng)用程序。
Azure-應(yīng)用程序服務(wù)器。 此服務(wù)器有一個運行業(yè)務(wù)應(yīng)用程序的 VM,其中安裝了 log analytics 和診斷代理。
Azure Monitor 指標。 Azure Monitor 度量值收集的數(shù)據(jù)存儲在為分析時間戳數(shù)據(jù)而優(yōu)化的時序數(shù)據(jù)庫中。 它還存儲從本地 Vm 和 Azure Vm 發(fā)送的指標。
Azure Monitor Log Analytics 工作區(qū)。 此工作區(qū)存儲從本地 Vm、Azure Vm 和第三方云提供商上的 Vm 發(fā)送的日志。 工作區(qū)是一種 Azure 資源,其中的數(shù)據(jù)是聚合的,它用作訪問此數(shù)據(jù)的管理邊界。 然后,其他 Azure Monitor 服務(wù)連接到 Log Analytics 工作區(qū),并使用這些數(shù)據(jù)來實現(xiàn)各種目的。 有關(guān)詳細信息,請參閱 設(shè)計 Azure Monitor 日志部署。
Azure Monitor-Application Insights。 Application Insights 提供對應(yīng)用程序的分析,并深入了解其使用情況。 在此示例體系結(jié)構(gòu)中,可用性 ping 測試檢查本地 web 應(yīng)用程序的可用性,并啟用警報規(guī)則以提供失敗的測試通知。 有關(guān)詳細信息,請參閱 什么是 Application Insights? 和 監(jiān)視任何網(wǎng)站的可用性。
Azure Monitor-用于 VM 的 Azure Monitor。 用于 VM 的 Azure Monitor 監(jiān)視虛擬機和虛擬機規(guī)模集的性能和運行狀況,包括其正在運行的進程和其他資源的依賴關(guān)系。 在此方案中,它將為你的虛擬機提供見解。 有關(guān)詳細信息,請參閱 什么是用于 VM 的 Azure Monitor?
Azure Monitor 分析。 Vm 中的日志和指標數(shù)據(jù)在 Azure Monitor 度量值和使用 Kusto 查詢語言 (KQL) 的 Log Analytics 工作區(qū)中查詢,以提供對基礎(chǔ)結(jié)構(gòu)、拓撲和資源的深入了解。 有關(guān)詳細信息,請參閱 Kusto:概述 和 Azure Monitor 日志查詢示例。
Azure Monitor-可視化。 Azure Monitor 使用可視化工具查看 Azure Monitor 中的應(yīng)用程序和基礎(chǔ)結(jié)構(gòu)組件以及服務(wù)之間的通信。 可視化工具包括 應(yīng)用程序見解的-應(yīng)用程序的地圖、 用于 VM 的 Azure Monitor 映射、 工作簿 以及各種在 Azure Monitor 內(nèi)可用的 儀表板 視圖。 有關(guān)詳細信息,請參閱 使用用于 VM 的 Azure Monitor 的地圖功能了解應(yīng)用程序組件、 創(chuàng)建和共享 Log Analytics 數(shù)據(jù)的儀表板和 Azure Monitor 工作簿。
Azure Monitor 集成。 Azure Monitor 與一系列合作伙伴和第三方工具和擴展集成,這些工具和擴展可增強和構(gòu)建現(xiàn)有 Azure Monitor 功能,如分析和可視化效果。
Azure Monitor-警報。 指標和日志數(shù)據(jù)的變體可以指示事件發(fā)生的情況。 規(guī)則定義觸發(fā)警報的數(shù)據(jù)變化、提供通知并啟動修正響應(yīng)。 在此體系結(jié)構(gòu)中,觸發(fā)警報時,自動化 runbook 會自動修正本地 Vm 和 Azure Vm。 此外還提供 Webhook 操作、服務(wù)管理集成和其他操作類型。 有關(guān)詳細信息,請參閱使用 Azure Monitor 創(chuàng)建、查看和管理指標警報 和 使用 Azure Monitor 創(chuàng)建、查看和管理日志警報。
Azure Monitor-自動縮放。 自動縮放將 VM 實例作為需求更改添加或刪除,這可保持性能并提高成本效益。 在此體系結(jié)構(gòu)中,自動縮放在平均 CPU 負載 (的百分比) 中定義了條件。 滿足條件時,Azure Monitor 自動縮放會根據(jù)需求調(diào)整規(guī)模集。 有關(guān)詳細信息,請參閱 Microsoft Azure 中的自動縮放概述
以下最佳實踐是適用于大多數(shù)方案的建議。 請按照以下步驟操作,除非你具有替代它們的特定要求。
設(shè)計 Log Analytics 工作區(qū)時,請考慮以下建議:
如果延遲是一個重要因素,請將工作區(qū)和資源置于同一 Azure 區(qū)域。
開始使用單個 Log Analytics 工作區(qū),并隨著需求的變化增加工作區(qū)數(shù)量。
如果有地理位置分散的團隊和資源,則可能需要每個區(qū)域一個工作區(qū)。
你的工作區(qū)不需要與正在運行的資源位于同一訂閱中。
對于簡單或更簡單的方案,可以使用指標來標記警報,而不是日志。 指標:
為 CPU 使用情況、可用內(nèi)存或邏輯磁盤空間等事件提供計數(shù)或 數(shù)字值。
延遲較低。
提供更高的粒度,例如每秒或每分鐘間隔。
快速通知你問題。
如果要收集一些自定義性能指標或特定于業(yè)務(wù)的指標以提供更深入的見解,則可以使用自定義指標實現(xiàn)此目的。 有關(guān)詳細信息,請參閱 Azure Monitor (預(yù)覽版中的自定義指標) 。
但在所有情況下,指標警報并不是答案。 如果需要更多的自定義或更強大的關(guān)聯(lián),你可能仍希望使用基于日志的警報。
請考慮以下分析和診斷建議:
使用日志進行更深入的分析。 日志可以:
(與指標) 相比,提供有關(guān)事件的詳細信息。
間歇發(fā)生。
在初始度量值標志后,簡化更深入的診斷。
你可以使用 HTTP 數(shù)據(jù)收集器 API) 使用 HTTP 數(shù)據(jù)收集器 API 將日志數(shù)據(jù)發(fā)送到 Log Analytics 工作區(qū)來自定義日志數(shù)據(jù)收集 (。 有關(guān)詳細信息,請參閱 通過 HTTP 數(shù)據(jù)收集器 API 將日志數(shù)據(jù)發(fā)送到 Azure Monitor (公共預(yù)覽版) 。
此外,通過應(yīng)用程序見解的 智能檢測 功能主動分析你的應(yīng)用程序。 智能檢測應(yīng)用 Azure 機器學(xué)習(xí)功能和統(tǒng)計分析 檢測性能或故障異常、內(nèi)存泄漏或一般應(yīng)用程序降低等問題。 有關(guān)詳細信息,請參閱 Application Insights 中的智能檢測。
此外,還可以使用 用于 VM 的 Azure Monitor 映射 來查看服務(wù)器、進程、入站和出站連接延遲以及任何 TCP 連接的體系結(jié)構(gòu)之間的連接。 除了安裝代理以外,無需進行任何配置。 利用 用于 VM 的 Azure Monitor Map,你可以將服務(wù)器作為互連系統(tǒng)交互和處理。
使用 KQL 在 Log Analytics 工作區(qū) 中查詢數(shù)據(jù),搜索術(shù)語、特定事件或狀態(tài),以確定趨勢和分析模式。 使用 查詢資源管理器 瀏覽并選擇預(yù)編寫的查詢,對其進行修改或創(chuàng)建自己的查詢。 你可以從工作區(qū)中運行、保存、共享和導(dǎo)出查詢,并將你最喜愛的查詢固定到儀表板以便重復(fù)使用。
通過使用自動化選項(如 Azure 策略、Azure PowerShell、資源管理器模板或所需狀態(tài)配置 (DSC) ),自動而不是單獨安裝代理。 有關(guān)詳細信息,請參閱 使用 Azure 策略啟用用于 VM 的 Azure Monitor, 使用 Azure PowerShell 啟用用于 VM 的 Azure Monitor,并 為混合虛擬機所需的狀態(tài)配置啟用用于 VM 的 Azure Monitor。
對于關(guān)鍵應(yīng)用程序,創(chuàng)建一個 Azure 儀表板 視圖。 共享或使你的儀表板實時在共享屏幕上可用,以供需要關(guān)鍵應(yīng)用程序數(shù)據(jù)的用戶使用。
下面是縮放環(huán)境的注意事項。
自動執(zhí)行資源和應(yīng)用程序的安裝和配置。
大規(guī)模地理位置分散的應(yīng)用程序。 在 Application Insights 中使用 分布式跟蹤 來跟蹤跨多個應(yīng)用程序組件、后端資源和微服務(wù)環(huán)境的依賴項和調(diào)用。 借助 分布式跟蹤 ,你可以調(diào)試在本地堆棧外部跨進程邊界調(diào)用的應(yīng)用程序。 (無需啟用 分布式跟蹤,就可以在 App Insights 中自動使用。 )
事務(wù)診斷體驗。 這類似于具有已添加時間維度的調(diào)用堆棧。 事務(wù)診斷體驗提供了一個單一事務(wù)/請求的可見性,并且它有助于查找每個請求的可靠性問題和性能瓶頸的根本原因。 有關(guān)詳細信息,請參閱 什么是分布式跟蹤?。
應(yīng)用程序映射體驗。 這會聚合許多事務(wù),以演示系統(tǒng)如何與界定閉合交互,并提供平均性能和錯誤率。 有關(guān)詳細信息,請參閱 應(yīng)用程序映射:會審分布式應(yīng)用程序。
使用分布式跟蹤數(shù)據(jù)的兩個選項為:
下面是確保環(huán)境可用性的注意事項。
可用性測試。 此體系結(jié)構(gòu)中使用的 URL ping 測試是最簡單的 外部 可用性測試。 不過,還可以使用其他選項,例如:
多步驟 web 測試。 播放排序的 web 請求的錄制,以測試復(fù)雜方案。 在 Microsoft Visual Studio Enterprise 中創(chuàng)建多步驟 web 測試,然后將其上傳到要執(zhí)行的門戶。
自定義跟蹤可用性測試。 使用 TrackAvailability()
方法將測試結(jié)果發(fā)送到 Application Insights。
警報。 在 Application Insights 中創(chuàng)建可用性測試時,默認情況下會啟用事件警報通知。 可以通過指定通知類型和詳細信息來編輯警報規(guī)則, Azure Monitor > 警報。
以下是使你的環(huán)境更易管理的注意事項。
簿. 使用工作簿有助于進一步分析和創(chuàng)建豐富的報表。 工作簿將文本、日志查詢、指標和參數(shù)合并為交互式報表。 有權(quán)訪問同一 Azure 資源的團隊成員可以編輯工作簿。 有關(guān)詳細信息,請參閱 創(chuàng)建交互式報表用于 VM 的 Azure Monitor 工作簿。
合作伙伴集成。 將 Azure Monitor 與合作伙伴和第三方工具集成,以幫助進行分析、可視化、警報或服務(wù)管理和 DevOps 管道。 有關(guān)詳細信息,請參閱 Azure Monitor 合作伙伴集成。
將 Azure Monitor 與 Microsoft System Center 集成。 將 Azure Monitor 與 System Center 產(chǎn)品套件集成。 有關(guān)詳細信息,請參閱 連接 Operations Manager 到 Azure Monitor。
向 Azure 事件中心發(fā)送數(shù)據(jù)。 若要將 Azure Monitor 與可視化和外部監(jiān)視工具集成,請參閱將 Azure 監(jiān)視數(shù)據(jù)流式傳輸?shù)绞录行幕蛲獠亢献骰锇椤?/p>
Log Analytics 網(wǎng)關(guān)。 對于較小的環(huán)境,如此體系結(jié)構(gòu)中的分支機構(gòu),請使用代理將數(shù)據(jù)傳輸?shù)?Log Analytics 工作區(qū)中,而不是傳輸?shù)骄W(wǎng)關(guān)。 有關(guān)詳細信息,請參閱 建立與 Azure Log Analytics 的連接。
下面是使你的環(huán)境更安全的注意事項。
Log Analytics 工作區(qū)。 訪問模式定義為下列其中一項:
工作區(qū)上下文。 可以查詢工作區(qū)有權(quán)訪問的所有日志。 這是一種垂直訪問方法。 例如,安全團隊可能需要從上到下訪問所有資源數(shù)據(jù)。
資源上下文。 只能查詢特定資源的日志。 例如,可以向應(yīng)用程序團隊授予對其正在處理的特定資源的日志的訪問權(quán)限。
保護傳輸中的數(shù)據(jù)以 Log Analytics。 傳輸中的數(shù)據(jù)使用最低傳輸層安全性 (TLS) 1.2 進行保護。 不需要顯式啟用此。 有關(guān)詳細信息,請參閱 Log Analytics 數(shù)據(jù)安全性。
在 Log Analytics 中保護靜態(tài)數(shù)據(jù)。 默認情況下,每個 Azure 存儲使用256位高級加密標準 (AES) 加密,因此,Log Analytics 中的靜態(tài)數(shù)據(jù)受到保護。
智能檢測。 使用 Application Insights 中的智能檢測來分析應(yīng)用程序生成的遙測數(shù)據(jù),并檢測安全問題。 有關(guān)詳細信息,請參閱 應(yīng)用程序安全檢測包 (預(yù)覽) 。
將 Azure Monitor 與安全信息和事件管理 (SIEM) 工具相集成。 使用 Azure Monitor 將監(jiān)視數(shù)據(jù)路由到事件中心,以集成外部 SIEM 和監(jiān)視工具。 有關(guān)詳細信息,請參閱將 Azure 監(jiān)視數(shù)據(jù)流式傳輸?shù)绞录行幕蛲獠亢献骰锇椤?/p>
以下是將你的環(huán)境與 DevOps 進程和解決方案集成的注意事項。
Application Insights。 將 Application Insights 集成到 DevOps 管道,有助于提高性能和可用性。 Application Insights 可以自動檢測性能異常,并連接到各種開發(fā)工具,例如 Azure DevOps services 和 GitHub。
應(yīng)用程序檢測。 通過修改應(yīng)用程序代碼以啟用 Application Insights 的遙測來 檢測 應(yīng)用程序。 以下方法是檢測應(yīng)用程序的方法:
ASP.NET 應(yīng)用程序
ASP.NET Core 應(yīng)用程序
.NET 控制臺應(yīng)用程序
Java
Node.js
Python
在 Azure Web 應(yīng)用上托管的 Microsoft ASP.NET 或 ASP.NET Core 應(yīng)用程序
Microsoft Internet Information Services 中托管的 ASP.NET 應(yīng)用程序 (IIS) Azure VM 或 Azure VMSS
在本地 VM 上的 IIS 中托管的 ASP.NET 應(yīng)用程序
基于 Java 的 Azure Functions
Linux 應(yīng)用服務(wù)上的 Node.JS 應(yīng)用
AKS 上托管的微服務(wù)
在運行時。 在運行時檢測服務(wù)器上的 web 應(yīng)用程序是已部署的應(yīng)用程序的理想選擇,因為這樣可以避免更新代碼。 適用的方案包括:
在開發(fā)時。 將 Application Insights 添加到代碼,以自定義遙測收集并發(fā)送其他數(shù)據(jù)。 支持的語言和平臺包括:
使用 IT 服務(wù)管理連接器 (ITSMC) 連接到外部 IT 服務(wù)管理 (ITSM) 工具。 ITSMC 將 Azure 連接到受支持的 ITSM 產(chǎn)品和服務(wù),其中通常包含問題相關(guān)的工作項。 有關(guān)詳細信息,請參閱 使用 IT 服務(wù)管理連接器將 Azure 連接到 ITSM 工具。
下面是在環(huán)境中控制和管理成本的注意事項。
Azure Monitor。 Azure Monitor 成本基于消耗,通常稱為即用即 付。
Log Analytics。 你需要為 數(shù)據(jù)引入 和 數(shù)據(jù)保留 付費。 可以估計并預(yù)測 Vm 數(shù),以及從每個 VM 收集的數(shù)據(jù)量,以 gb) (。 典型的 Azure VM 每月使用1到3千兆字節(jié) (GB 數(shù)據(jù)) 。 如果你正在使用 Azure Monitor 日志評估數(shù)據(jù)使用情況,請使用你自己的環(huán)境中的數(shù)據(jù)統(tǒng)計信息,并通過 容量預(yù)留 獲取折扣。
Application Insights。 這會根據(jù)應(yīng)用程序發(fā)送的遙測數(shù)據(jù)量以及運行的 web 測試的數(shù)量進行計費。
指標查詢。 指標查詢按進行的調(diào)用數(shù)計費。
警報。 警報根據(jù)監(jiān)視的信號的類型和數(shù)量進行計費。
通知。 通知根據(jù)發(fā)送的通知的類型和數(shù)量進行計費。
Azure Monitor。 Azure Monitor 的 " 使用情況和估計成本 " 部分基于前31天的使用情況估算每月成本。
有關(guān)詳細信息,請參閱 Azure Monitor 定價 和 價格計算器。