当前位置:黑鲸出海 > 热点资讯 > 干货分享 >  Azure:混合可用性和性能监视

Azure:混合可用性和性能监视

发表时间:2021-05-14  来源:Microsoft  作者:Microsoft  浏览:次  
此参考体系结构演示了如何设计 Azure Monitor 来监视 (操作系统的性能和可用性,) 在虚拟机中运行的工作负荷 (Vm) 中、在本地环境中,以及第三方云提供商。

此参考体系结构演示了如何设计 Azure Monitor 来监视 (操作系统的性能和可用性,) 在虚拟机中运行的工作负荷 (Vm) 中、在本地环境中,以及第三方云提供商。

说明 Azure、本地环境和第三方云提供商中的 OS 工作负荷 Azure Monitor 的监视和可用性功能的示意图。 正在将数据发送到 Log Analytics 工作区。 Application Insights、分析、可视化、警报和自动缩放服务使用数据作为 Azure Monitor 的一部分

下载此体系结构的 Visio 文件。

体系结构说明

该体系结构包括以下组件:

  • 本地总公司-VM 1。 这是一个具有 internet 访问权限的 web 应用程序和一个面向公众的网页,并同时安装了 log analytics 和依赖项代理。 有关代理的信息,请参阅 Log Analytics 代理概述 和 Azure Monitor 代理、依赖关系代理概述。

  • 本地总公司-VM 2。 这种业务逻辑环境无法访问 internet。 但是,它会安装 log analytics 和依赖关系代理。

  • 本地总公司-VM 3。 这是一个无 internet 访问的数据存储,但安装了 log analytics 和依赖关系代理。

  • 本地总公司 Log Analytics 网关。 Log Analytics 网关从三个本地 Vm 收集日志和指标数据,并通过传输控制协议 (TCP) 在端口443上将其传送到 Log Analytics 工作区 。

  • 本地总部防火墙。 进出本地环境的流量通过防火墙路由。

  • 网关。 网关提供与分支机构的连接。

  • 本地分支办公室-VM 4。 这是在没有 internet 访问的情况下运行的业务应用程序,但安装了 log analytics 和依赖项代理。 已在 VM 上安装的 Log Analytics 代理配置为将数据直接传输到 Log Analytics 工作区,而无需 Log Analytics 网关。

  • 本地分支机构-网关。 此网关通过虚拟专用网络将分支机构连接到本地总公司 (VPN) 。

  • 第三方云提供程序-VM 5。 这是一个具有 internet 访问权限的 web 应用程序,一个面向公众的网页,还安装了 log analytics 和依赖项代理。

  • 第三方云提供程序-VM 6。 这是一个无 internet 访问的数据存储环境,但同时安装了 log analytics 和依赖项代理。 从第三方云提供商环境到本地环境没有直接连接。

  • Azure-虚拟机规模集。 (VMSS) 的 Azure 虚拟机规模集是一个规模集,它在安装了 log analytics 和诊断代理的情况运行业务应用程序。

  • Azure-应用程序服务器。 此服务器有一个运行业务应用程序的 VM,其中安装了 log analytics 和诊断代理。

  • Azure Monitor 指标。 Azure Monitor 度量值收集的数据存储在为分析时间戳数据而优化的时序数据库中。 它还存储从本地 Vm 和 Azure Vm 发送的指标。

  • Azure Monitor Log Analytics 工作区。 此工作区存储从本地 Vm、Azure Vm 和第三方云提供商上的 Vm 发送的日志。 工作区是一种 Azure 资源,其中的数据是聚合的,它用作访问此数据的管理边界。 然后,其他 Azure Monitor 服务连接到 Log Analytics 工作区,并使用这些数据来实现各种目的。 有关详细信息,请参阅 设计 Azure Monitor 日志部署。

  • Azure Monitor-Application Insights。 Application Insights 提供对应用程序的分析,并深入了解其使用情况。 在此示例体系结构中,可用性 ping 测试检查本地 web 应用程序的可用性,并启用警报规则以提供失败的测试通知。 有关详细信息,请参阅 什么是 Application Insights? 和 监视任何网站的可用性。

  • Azure Monitor-用于 VM 的 Azure Monitor。 用于 VM 的 Azure Monitor 监视虚拟机和虚拟机规模集的性能和运行状况,包括其正在运行的进程和其他资源的依赖关系。 在此方案中,它将为你的虚拟机提供见解。 有关详细信息,请参阅 什么是用于 VM 的 Azure Monitor?

  • Azure Monitor 分析。 Vm 中的日志和指标数据在 Azure Monitor 度量值和使用 Kusto 查询语言 (KQL) 的 Log Analytics 工作区中查询,以提供对基础结构、拓扑和资源的深入了解。 有关详细信息,请参阅 Kusto:概述 和 Azure Monitor 日志查询示例。

  • Azure Monitor-可视化。 Azure Monitor 使用可视化工具查看 Azure Monitor 中的应用程序和基础结构组件以及服务之间的通信。 可视化工具包括 应用程序见解的-应用程序的地图、 用于 VM 的 Azure Monitor 映射、 工作簿 以及各种在 Azure Monitor 内可用的 仪表板 视图。 有关详细信息,请参阅 使用用于 VM 的 Azure Monitor 的地图功能了解应用程序组件、 创建和共享 Log Analytics 数据的仪表板和 Azure Monitor 工作簿。

  • Azure Monitor 集成。 Azure Monitor 与一系列合作伙伴和第三方工具和扩展集成,这些工具和扩展可增强和构建现有 Azure Monitor 功能,如分析和可视化效果。

  • Azure Monitor-警报。 指标和日志数据的变体可以指示事件发生的情况。 规则定义触发警报的数据变化、提供通知并启动修正响应。 在此体系结构中,触发警报时,自动化 runbook 会自动修正本地 Vm 和 Azure Vm。 此外还提供 Webhook 操作、服务管理集成和其他操作类型。 有关详细信息,请参阅使用 Azure Monitor 创建、查看和管理指标警报 和 使用 Azure Monitor 创建、查看和管理日志警报。

  • Azure Monitor-自动缩放。 自动缩放将 VM 实例作为需求更改添加或删除,这可保持性能并提高成本效益。 在此体系结构中,自动缩放在平均 CPU 负载 (的百分比) 中定义了条件。 满足条件时,Azure Monitor 自动缩放会根据需求调整规模集。 有关详细信息,请参阅 Microsoft Azure 中的自动缩放概述

建议

以下最佳实践是适用于大多数方案的建议。 请按照以下步骤操作,除非你具有替代它们的特定要求。

Log Analytics 工作区

设计 Log Analytics 工作区时,请考虑以下建议:

  • 如果延迟是一个重要因素,请将工作区和资源置于同一 Azure 区域。

  • 开始使用单个 Log Analytics 工作区,并随着需求的变化增加工作区数量。

  • 如果有地理位置分散的团队和资源,则可能需要每个区域一个工作区。

  • 你的工作区不需要与正在运行的资源位于同一订阅中。

警报

对于简单或更简单的方案,可以使用指标来标记警报,而不是日志。 指标:

  • 为 CPU 使用情况、可用内存或逻辑磁盘空间等事件提供计数或 数字值

  • 延迟较低。

  • 提供更高的粒度,例如每秒或每分钟间隔。

  • 快速通知你问题。

如果要收集一些自定义性能指标或特定于业务的指标以提供更深入的见解,则可以使用自定义指标实现此目的。 有关详细信息,请参阅 Azure Monitor (预览版中的自定义指标) 。

但在所有情况下,指标警报并不是答案。 如果需要更多的自定义或更强大的关联,你可能仍希望使用基于日志的警报。

分析和诊断

请考虑以下分析和诊断建议:

  • 使用日志进行更深入的分析。 日志可以:

    • (与指标) 相比,提供有关事件的详细信息。

    • 间歇发生。

    • 在初始度量值标志后,简化更深入的诊断。

你可以使用 HTTP 数据收集器 API) 使用 HTTP 数据收集器 API 将日志数据发送到 Log Analytics 工作区来自定义日志数据收集 (。 有关详细信息,请参阅 通过 HTTP 数据收集器 API 将日志数据发送到 Azure Monitor (公共预览版) 。

此外,通过应用程序见解的 智能检测 功能主动分析你的应用程序。 智能检测应用 Azure 机器学习功能和统计分析 检测性能或故障异常、内存泄漏或一般应用程序降低等问题。 有关详细信息,请参阅 Application Insights 中的智能检测。

此外,还可以使用 用于 VM 的 Azure Monitor 映射 来查看服务器、进程、入站和出站连接延迟以及任何 TCP 连接的体系结构之间的连接。 除了安装代理以外,无需进行任何配置。 利用 用于 VM 的 Azure Monitor Map,你可以将服务器作为互连系统交互和处理。

Log Analytics 查询

使用 KQL 在 Log Analytics 工作区 中查询数据,搜索术语、特定事件或状态,以确定趋势和分析模式。 使用 查询资源管理器 浏览并选择预编写的查询,对其进行修改或创建自己的查询。 你可以从工作区中运行、保存、共享和导出查询,并将你最喜爱的查询固定到仪表板以便重复使用。

代理安装

通过使用自动化选项(如 Azure 策略、Azure PowerShell、资源管理器模板或所需状态配置 (DSC) ),自动而不是单独安装代理。 有关详细信息,请参阅 使用 Azure 策略启用用于 VM 的 Azure Monitor, 使用 Azure PowerShell 启用用于 VM 的 Azure Monitor,并 为混合虚拟机所需的状态配置启用用于 VM 的 Azure Monitor。

仪表板

对于关键应用程序,创建一个 Azure 仪表板 视图。 共享或使你的仪表板实时在共享屏幕上可用,以供需要关键应用程序数据的用户使用。

可伸缩性注意事项

下面是缩放环境的注意事项。

  • 自动执行资源和应用程序的安装和配置。

  • 大规模地理位置分散的应用程序。 在 Application Insights 中使用 分布式跟踪 来跟踪跨多个应用程序组件、后端资源和微服务环境的依赖项和调用。 借助 分布式跟踪 ,你可以调试在本地堆栈外部跨进程边界调用的应用程序。 (无需启用 分布式跟踪,就可以在 App Insights 中自动使用。 )

    • 事务诊断体验。 这类似于具有已添加时间维度的调用堆栈。 事务诊断体验提供了一个单一事务/请求的可见性,并且它有助于查找每个请求的可靠性问题和性能瓶颈的根本原因。 有关详细信息,请参阅 什么是分布式跟踪?。

    • 应用程序映射体验。 这会聚合许多事务,以演示系统如何与界定闭合交互,并提供平均性能和错误率。 有关详细信息,请参阅 应用程序映射:会审分布式应用程序。

    • 使用分布式跟踪数据的两个选项为:

可用性注意事项

下面是确保环境可用性的注意事项。

  • 可用性测试。 此体系结构中使用的 URL ping 测试是最简单的 外部 可用性测试。 不过,还可以使用其他选项,例如:

    • 多步骤 web 测试。 播放排序的 web 请求的录制,以测试复杂方案。 在 Microsoft Visual Studio Enterprise 中创建多步骤 web 测试,然后将其上传到要执行的门户。

    • 自定义跟踪可用性测试。 使用 TrackAvailability() 方法将测试结果发送到 Application Insights。

  • 警报。 在 Application Insights 中创建可用性测试时,默认情况下会启用事件警报通知。 可以通过指定通知类型和详细信息来编辑警报规则, Azure Monitor > 警报。

可管理性注意事项

以下是使你的环境更易管理的注意事项。

  • 簿. 使用工作簿有助于进一步分析和创建丰富的报表。 工作簿将文本、日志查询、指标和参数合并为交互式报表。 有权访问同一 Azure 资源的团队成员可以编辑工作簿。 有关详细信息,请参阅 创建交互式报表用于 VM 的 Azure Monitor 工作簿。

  • 合作伙伴集成。 将 Azure Monitor 与合作伙伴和第三方工具集成,以帮助进行分析、可视化、警报或服务管理和 DevOps 管道。 有关详细信息,请参阅 Azure Monitor 合作伙伴集成。

  • 将 Azure Monitor 与 Microsoft System Center 集成。 将 Azure Monitor 与 System Center 产品套件集成。 有关详细信息,请参阅 连接 Operations Manager 到 Azure Monitor。

  • 向 Azure 事件中心发送数据。 若要将 Azure Monitor 与可视化和外部监视工具集成,请参阅将 Azure 监视数据流式传输到事件中心或外部合作伙伴。

  • Log Analytics 网关。 对于较小的环境,如此体系结构中的分支机构,请使用代理将数据传输到 Log Analytics 工作区中,而不是传输到网关。 有关详细信息,请参阅 建立与 Azure Log Analytics 的连接。

安全注意事项

下面是使你的环境更安全的注意事项。

  • Log Analytics 工作区。 访问模式定义为下列其中一项:

    • 工作区上下文。 可以查询工作区有权访问的所有日志。 这是一种垂直访问方法。 例如,安全团队可能需要从上到下访问所有资源数据。

    • 资源上下文。 只能查询特定资源的日志。 例如,可以向应用程序团队授予对其正在处理的特定资源的日志的访问权限。

  • 保护传输中的数据以 Log Analytics。 传输中的数据使用最低传输层安全性 (TLS) 1.2 进行保护。 不需要显式启用此。 有关详细信息,请参阅 Log Analytics 数据安全性。

  • 在 Log Analytics 中保护静态数据。 默认情况下,每个 Azure 存储使用256位高级加密标准 (AES) 加密,因此,Log Analytics 中的静态数据受到保护。

  • 智能检测。 使用 Application Insights 中的智能检测来分析应用程序生成的遥测数据,并检测安全问题。 有关详细信息,请参阅 应用程序安全检测包 (预览) 。

  • 将 Azure Monitor 与安全信息和事件管理 (SIEM) 工具相集成。 使用 Azure Monitor 将监视数据路由到事件中心,以集成外部 SIEM 和监视工具。 有关详细信息,请参阅将 Azure 监视数据流式传输到事件中心或外部合作伙伴。

DevOps 注意事项

以下是将你的环境与 DevOps 进程和解决方案集成的注意事项。

  • Application Insights。 将 Application Insights 集成到 DevOps 管道,有助于提高性能和可用性。 Application Insights 可以自动检测性能异常,并连接到各种开发工具,例如 Azure DevOps services 和 GitHub。

  • 应用程序检测。 通过修改应用程序代码以启用 Application Insights 的遥测来 检测 应用程序。 以下方法是检测应用程序的方法:

    • ASP.NET 应用程序

    • ASP.NET Core 应用程序

    • .NET 控制台应用程序

    • Java

    • Node.js

    • Python

    • 在 Azure Web 应用上托管的 Microsoft ASP.NET 或 ASP.NET Core 应用程序

    • Microsoft Internet Information Services 中托管的 ASP.NET 应用程序 (IIS) Azure VM 或 Azure VMSS

    • 在本地 VM 上的 IIS 中托管的 ASP.NET 应用程序

    • 基于 Java 的 Azure Functions

    • Linux 应用服务上的 Node.JS 应用

    • AKS 上托管的微服务

    • 在运行时。 在运行时检测服务器上的 web 应用程序是已部署的应用程序的理想选择,因为这样可以避免更新代码。 适用的方案包括:

    • 在开发时。 将 Application Insights 添加到代码,以自定义遥测收集并发送其他数据。 支持的语言和平台包括:

  • 使用 IT 服务管理连接器 (ITSMC) 连接到外部 IT 服务管理 (ITSM) 工具。 ITSMC 将 Azure 连接到受支持的 ITSM 产品和服务,其中通常包含问题相关的工作项。 有关详细信息,请参阅 使用 IT 服务管理连接器将 Azure 连接到 ITSM 工具。

成本注意事项

下面是在环境中控制和管理成本的注意事项。

  • Azure Monitor。 Azure Monitor 成本基于消耗,通常称为即用即 

  • Log Analytics。 你需要为 数据引入 和 数据保留 付费。 可以估计并预测 Vm 数,以及从每个 VM 收集的数据量,以 gb) (。 典型的 Azure VM 每月使用1到3千兆字节 (GB 数据) 。 如果你正在使用 Azure Monitor 日志评估数据使用情况,请使用你自己的环境中的数据统计信息,并通过 容量预留 获取折扣。

  • Application Insights。 这会根据应用程序发送的遥测数据量以及运行的 web 测试的数量进行计费。

  • 指标查询。 指标查询按进行的调用数计费。

  • 警报。 警报根据监视的信号的类型和数量进行计费。

  • 通知。 通知根据发送的通知的类型和数量进行计费。

  • Azure Monitor。 Azure Monitor 的 " 使用情况和估计成本 " 部分基于前31天的使用情况估算每月成本。

  • 有关详细信息,请参阅 Azure Monitor 定价 和 价格计算器。

注:文章源自于互联网,如有侵权,请联系客服删除。
19951839869
黑鲸出海客服