Azure 上的 Web 應用程式監視

Azure App Service
Azure Log Analytics
Azure 監視器

此案例可解決您可以使用的監視服務,並描述要與多個數據源搭配使用的數據流模型。 在監視方面,許多工具和服務都會與 Azure 部署搭配運作。 在此案例中,我們正是因為容易取用而選擇現成的服務。 本文稍後會討論其他監視選項。

架構

下載此架構的 Visio 檔案

資料流程

此案例會使用受控 Azure 環境來裝載應用程式和數據層。 數據流會流經案例,如下所示:

  1. 使用者與應用程式互動。
  2. 瀏覽器和 App Service 會發出遙測。
  3. Application Insights 會收集和分析應用程式健康情況、效能和使用方式數據。
  4. 開發人員和系統管理員可以檢閱健康情況、效能和使用方式資訊。
  5. Azure SQL 資料庫 會發出遙測。
  6. Azure 監視器會收集和分析基礎結構計量和配額。
  7. Log Analytics 會收集並分析記錄和計量。
  8. 開發人員和系統管理員可以檢閱健康情況、效能和使用方式資訊。

元件

  • Azure App 服務 是 PaaS 服務,用於在受控虛擬機中建置及裝載應用程式。 應用程式執行的基礎計算基礎結構會為您管理。 App Service 會根據計量來監視資源使用量配額和應用程式計量、診斷信息的記錄,以及警示。 更棒的是,您可以使用ApplicationInsights來建立 可用性測試 ,以測試來自不同區域的應用程式。
  • Application Insights 是適用於開發人員且支援多個平臺的可延伸應用程式效能管理 (APM) 服務。 它會監視應用程式、偵測應用程式異常狀況,例如效能不佳和失敗,並將遙測傳送至 Azure 入口網站。 Application Insights 也可用於記錄、分散式追蹤和自定義應用程式計量。
  • Azure 監視器 提供 Azure 中大部分服務的基底層級基礎結構 計量和記錄 。 您可以透過數種方式與計量互動,包括以 Azure 入口網站 圖表、透過 REST API 存取計量,或使用 PowerShell 或 CLI 查詢計量。 Azure 監視器也會將其數據直接 提供給 Log Analytics 和其他服務,您可以在其中查詢並結合來自內部部署或雲端中其他來源的數據。
  • Log Analytics 可協助將 Application Insights 所收集的使用量和效能數據與支援應用程式的 Azure 資源中的設定和效能數據相互關聯。 此案例會 使用 Azure Log Analytics 代理程式 ,將 SQL Server 稽核記錄推送至 Log Analytics。 您可以在 Azure 入口網站 的 [Log Analytics] 刀鋒視窗中寫入查詢和檢視數據。

案例詳細資料

Azure 平臺即服務 (PaaS) 供應專案會為您管理計算資源,並影響您監視部署的方式。 Azure 包含多個監視服務,每個服務都會執行特定角色。 這些服務一起提供完整的解決方案,可從您的應用程式和其取用的 Azure 資源收集、分析及處理遙測。

此案例可解決您可以使用的監視服務,並描述要與多個數據源搭配使用的數據流模型。 在監視方面,許多工具和服務都會與 Azure 部署搭配運作。 在此案例中,我們正是因為容易取用而選擇現成的服務。 本文稍後會討論其他監視選項。

潛在的使用案例

其他相關的使用案例包括:

  • 檢測 Web 應用程式以監視遙測。
  • 針對部署在 Azure 上的應用程式收集前端和後端遙測。
  • 監視與 Azure 上服務相關聯的計量和配額。

考量

這些考慮會實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework

卓越營運

卓越營運涵蓋部署應用程式的作業程式,並讓它在生產環境中執行。 如需詳細資訊,請參閱 營運卓越支柱概觀。

監視

建議的做法是在開發期間使用 Application Insights SDK,以及自定義每個應用程式,將ApplicationInsights新增至您的程序代碼。 這些開放原始碼 SDK 適用於大部分的應用程式架構。 若要擴充及控制您收集的數據,請將 SDK 用於測試和生產部署的 SDK 併入您的開發程式。 主要需求是讓應用程式能夠直接或間接地看到裝載於因特網對應位址的 Applications Insights 擷取端點。 然後,您可以新增遙測或擴充現有的遙測集合。

運行時間監視是另一個容易開始使用的方法。 收集的遙測必須透過組態檔來控制。 例如,您可以包含運行時間方法,讓 Application Insights 狀態監視器工具將 SDK 部署至正確的資料夾,並新增正確的組態以開始監視。

和 Application Insights 一樣,Log Analytics 提供工具,可用來 分析來源的數據、建立複雜的查詢,以及在 指定的條件下傳送主動式警示 。 您也可以在 Azure 入口網站檢視遙測。 Log Analytics 會將價值新增至現有的監視服務,例如 Azure 監視器 ,也可以監視內部部署環境。

Application Insights 和 Log Analytics 都使用 Azure Log Analytics 查詢語言。 您也可以使用 跨資源查詢 來分析 Application Insights 和 Log Analytics 在單一查詢中收集的遙測。

Azure 監視器、Application Insights 和 Log Analytics 都會傳送 警示。 例如,Azure 監視器在平臺層級計量上警示,例如 CPU 使用率,而 Application Insights 則會在應用層級計量上警示,例如伺服器回應時間。 Azure 活動記錄中新事件的 Azure 監視器警示,而 Log Analytics 可以發出有關設定為使用它之服務的計量或事件數據警示。 Azure 監視器 中的整合警示是 Azure 中使用不同分類法的新整合警示體驗。

替代項目

本文說明方便使用的監視選項與熱門功能,但您有許多選擇,包括建立您自己的記錄機制的選項。 建議您在解決方案中建置階層時新增監視服務。 以下是一些可能的擴充功能和替代方案:

如需詳細資訊,請參閱 在 Azure 架構良好架構中監視 DevOps

延展性和可用性

此案例主要著重於用於監視的 PaaS 解決方案,因為它們可方便處理您的可用性和延展性,並由服務等級協定 (SLA) 支援。 例如,App Services 會為其可用性提供保證 的 SLA

Application Insights 對於每秒可處理的要求數目有 限制 。 如果您超過要求限制,可能會遇到訊息節流。 若要防止節流,請實 作篩選取樣 以減少數據速率

不過,您執行之應用程式的高可用性考慮是開發人員的責任。 如需調整的相關信息,例如,請參閱 基本 Web 應用程式參考架構中的延展性考慮 。 部署應用程式之後,您可以設定測試,以 使用Application Insights監視其可用性

安全性

安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱 安全性要素概觀。

敏感性資訊和合規性需求會影響數據收集、保留和記憶體。 深入瞭解 Application InsightsLog Analytics 如何處理遙測。

下列安全性考慮也可能適用:

  • 如果允許開發人員收集自己的數據或擴充現有的遙測,請制定計劃來處理個人資訊。
  • 請考慮數據保留。 例如,Application Insights 會保留遙測數據 90 天。 使用 Microsoft Power BI、連續匯出或 REST API 封存您想要存取較長期間的數據。 儲存體 費率適用。
  • 限制對 Azure 資源的存取,以控制數據存取,以及可從特定應用程式檢視遙測的人員。 若要協助鎖定監視遙測的存取權,請參閱 Application Insights中的資源、角色和訪問控制。
  • 請考慮是否控制應用程式程式代碼中的讀取/寫入存取權,以防止使用者新增限制應用程式數據擷取的版本或標記標記。 使用 Application Insights 時,一旦將數據項傳送至資源,就無法控制個別數據項,因此如果使用者能夠存取任何數據,他們就能夠存取個別資源中的所有數據。
  • 新增 治理 機制,以視需要對 Azure 資源強制執行原則或成本控制。 例如,使用Log Analytics進行安全性相關的監視,例如原則和角色型訪問控制,或使用 Azure 原則 來建立、指派和管理原則定義。
  • 若要監視潛在的安全性問題,並取得 Azure 資源安全性狀態的集中檢視,請考慮使用 適用於雲端的 Microsoft Defender

成本最佳化

成本優化是考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱 成本優化要素概觀。

監視費用可能會快速增加。 請考慮預先定價、瞭解您正在監視的內容,並檢查每個服務的相關費用。 Azure 監視器免費提供基本計量,而 Application Insights 和 Log Analytics監視成本則以所擷取的數據量和您執行的測試數目為基礎。

若要協助您開始使用,請使用 定價計算機 來預估成本。 變更各種定價選項,以符合您預期的部署。

來自 Application Insights 的遙測會在偵錯期間和發佈應用程式之後傳送至 Azure 入口網站。 基於測試目的和避免費用,會檢測有限的遙測量。 若要新增更多指標,您可以提高遙測限制。 如需更細微的控制,請參閱 Application Insights 中的取樣。

部署之後,您可以觀看 效能指標的即時計量串流 。 此數據不會儲存 —您正在檢視實時計量,但稍後可以收集及分析遙測。 實時數據流數據不收取任何費用。

Log Analytics 會依擷取至服務的資料 GB 量來計費。 每月會免費提供內嵌至 Azure Log Analytics 服務的前 5 GB 數據,且數據會在 Log Analytics 工作區的前 31 天免費保留。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主體作者:

若要查看非公用LinkedIn配置檔,請登入LinkedIn。

下一步

檢視這些設計來協助您開始使用自己的監視解決方案的資源: