使用见解监视 VM 和容器

已完成

你的组织已将多个应用程序从本地迁移到了 Azure 虚拟机 (VM) 和 Azure Kubernetes 服务 (AKS)。 现在,多个 Azure 订阅中部署了数百个 Azure 资源。

必须跟踪资源使用情况,以确保云资源充分预配,并且其性能满足业务要求。 你需要一种监视方法,其提供广泛的可见性以及快速分类和隔离问题的功能。

本单元介绍如何在所有 VM 和容器资源中使用 Azure Monitor 见解和其他工具进行大规模监视。 你还将了解如何钻取到特定节点和容器进行故障排除。

Azure Monitor 见解

可以使用 Azure Monitor 见解大规模监视资源利用率和性能,并利用使用引导式故障排除进行会审和隔离问题。 本单元重点介绍 VM 见解和容器见解,但其他 Azure 资源(包括网络、存储帐户和 Azure Cosmos DB 数据库)存在见解。 有关可用见解的完整列表,请在 Azure Monitor 左侧导航中选择“见解中心”。

Screenshot of Azure Monitor Insights Hub.

Azure Monitor VM 见解

VM 见解是一项 Azure Monitor 功能,通过收集一组常用指标并将其发送到 Log Analytics 工作区,可帮助你开始监视 VM 客户端。 可使用 Azure Monitor VM 见解执行以下操作:

  • 查看 VM 的运行状况和性能。
  • 跨多个订阅和资源组大规模监视 VM。
  • 获取一个显示 VM 和虚拟机规模集的进程和网络连接详细信息的拓扑视图。

Screenshot of getting started with Azure Monitor VM insights in the Azure portal.

若要启用 Azure Monitor VM 见解,请从 Azure Monitor 左侧导航中选择“虚拟机”,然后在“入门”选项卡上选择“配置见解”。在“概述”选项卡的“未监视”部分中,选择要监视的 VM 和虚拟机规模集,然后选择“启用”。

启用 VM 见解会将扩展和配置添加到 VM 和虚拟机规模集,它们会收集、存储和显示预先确定的使用情况和性能度量集。

大规模监视 VM

启用后,VM 见解会监视 VM 和虚拟机规模集使用情况和性能。 选择 VM 见解“性能”选项卡,以查看显示 VM 资源使用情况的“前 N 个图表”和“前 N 个列表”。

通过这些图表,可以快速识别分配的资源可能不足以支持现有负载的离群值和热点。 从“前 N 个列表”中,可以选择 VM 来访问更多详细信息,例如其属性、指向其他工作簿的链接、收集的日志和警报。

Screenshot of Top N List of VMs in the Azure Monitor portal.

可以通过从“日志事件”列表中选择事件类型来向下钻取到 Azure Monitor 日志。 此时会打开相关的 Log Analytics 工作区,其中应用了相应的表和筛选器。

Screenshot of drilling into Azure Monitor Logs from VM insights.

Azure Monitor VM 见解“映射”选项卡显示整个资源组、虚拟机规模集或单个 VM 的网络连接。 使用视图顶部的筛选器来选择所需的资源。

可以展开整个列表的进程数,并查看每个进程的网络连接。 选择表示网络使用情况和性能详细信息的连接的箭头。

Screenshot of VM insights Map view.

Azure Monitor 容器见解

容器见解是 Azure Monitor 的一项功能,用于监视部署到 Azure 的容器工作负载(包括 AKS)的性能和运行状况。 容器见解从控制器、节点和容器收集内存和处理器指标,并收集容器日志。 可以使用 Azure Monitor 容器见解执行以下操作:

  • 跨多个订阅和资源组跨大规模查看 Kubernetes 工作负载的运行状况和性能。
  • 查看控制器、节点和容器中的内存和处理器性能指标。
  • 查看和存储容器日志以进行实时和历史分析。

可以在创建 AKS 群集时启用 Azure Monitor 容器见解,也可以通过在 Azure Monitor 左侧导航中选择“容器”,然后选择“未受监视的群集”选项卡来启用。

大规模监视 Kubernetes 群集

启用容器见解后,可以按“群集”、“节点”、“控制器”或“容器”,在容器见解页上查看 Kubernetes 工作负载的性能和资源利用率。 例如,可以:

  • 调查过度利用的节点。
  • 按控制器查看 Pod 的状态。
  • 查看特定容器的重启次数以及 CPU 或内存利用率。

Screenshot of Azure Monitor container insights list of containers by utilization.

受监视的群集”选项卡显示所有群集、节点、系统 Pod 和用户 Pod 的运行状况和状态的大规模视图。 可以按命名空间筛选此视图,并将其用作钻取问题区域的起点。 还可以使用容器见解访问日志并启用建议的警报。

Screenshot of the Azure Monitor container insights multicluster view.

适用于 Prometheus 的 Azure Monitor 托管服务

Prometheus 是专为容器和微服务设计的开放源代码监视系统。 Prometheus 侧重于分布式应用程序,使其成为监视 Kubernetes、分布式服务和容器化微服务的热门工具。

适用于 Prometheus 的 Azure Monitor 托管服务是 Azure Monitor 指标的一个组件,支持开放源代码查询和可视化工具,如 PromQL 和 Grafana。 适用于 Prometheus 的 Azure Monitor 托管服务可以从 AKS 或任何使用远程写入运行自管理 Prometheus 的 Kubernetes 群集收集数据。 若要启用适用于 Prometheus 的 Azure Monitor 托管服务,请创建一个 Azure Monitor 工作区来存储 Prometheus 指标。

与 Azure 托管 Grafana 集成

Grafana 是一个开放源代码可视和仪表板平台,它是可视化 Prometheus 指标的主要方法。 可以将 Azure Monitor 工作区连接到 Grafana 工作区,以使用 Prometheus 指标数据作为 Grafana 仪表板中的数据源。

Azure 托管 Grafana 是 Grafana 的完全托管实现,它提供多个预定义的 Grafana 仪表板,用于监视 Kubernetes 并执行全堆栈故障排除。 可以导入使用 Prometheus 指标的预生成 Grafana 仪表板,也可以创建自定义仪表板。 以下屏幕截图显示了使用 AKS 监视数据的 Azure 托管 Grafana 仪表板。

Screenshot of a Grafana dashboard that shows AKS monitoring data.

Azure Monitor 警报

某些类型的 Azure Monitor 见解包括建议的警报模板,但你也可以指定在特定环境中触发警报的条件。 可以配置警报规则来监视基础结构的性能和可用性,并使用警报规则和操作规则来决定如何处理警报。

可以将 Azure Monitor 警报基于用于填充见解的相同指标或日志数据。 例如,如果 VM 超出利用率阈值,或者发生指定数量的容器重启,则 Azure Monitor 可能会发送警报。

还可以指定应通知的人员。 见解可以通过电子邮件或短信发送通知,或使用 Runbook 和 Webhook 自动响应警报。

Screenshot of alert creation.

知识检查

1.

在哪里可以找到包含 VM 和虚拟机规模集网络连接详细信息的拓扑视图?

2.

哪些开放源代码监视系统是专为容器和微服务设计的?