Azure Monitor 中的 Kubernetes 监控

Azure 基于 Azure Monitor 提供一套完整的服务,用于监视 Kubernetes 基础结构的不同层的运行状况和性能,以及依赖于该服务的应用程序。 这些服务相互配合工作,为 在 Azure Kubernetes 服务(AKS)中运行的群集提供完整的监视解决方案。

你可能对 Cloud Native Computing Foundation 认可的云原生技术进行现有投资,或者你的组织可能使用替代工具来收集和分析 Kubernetes 日志,例如 Splunk 或 Datadog。 选择要部署的 Azure 工具及其配置将取决于特定环境的要求。 可以选择将现有监视解决方案迁移到 Azure Monitor 或将 Azure 服务集成到现有环境中。 例如,可以在其他云中使用 Azure 中用于 Prometheus 和 Grafana 的托管产品/服务,或者可以选择在 Azure 中将这些工具的现有安装与 Kubernetes 群集配合使用。

小窍门

本文介绍用于监视 Kubernetes 群集的运行状况和性能以及运行它们的工作负荷的 Azure Monitor 的功能。 有关如何配置这些服务以基于管理 Kubernetes 环境的典型角色监视 Kubernetes 环境的不同层的最佳做法,请参阅 使用 Azure Monitor 和云本机工具监视 Kubernetes 群集

Kubernetes 层

下面是从基础结构层到应用程序的典型 Kubernetes 环境的插图。 每个层都有不同的监视要求,这些要求由下面所述的不同 Azure 服务解决。

包含相关管理角色的 Kubernetes 环境的层关系图。

网络级别

支持传入和传出 Kubernetes 群集流量的虚拟网络组件使用以下服务进行监视。

服务 Description
网络观察程序 Azure 中的工具套件,用于监视 Kubernetes 群集使用的虚拟网络并诊断检测到的问题。
流量分析 网络监视器的功能,用于分析流日志,以提供流量分析见解。
网络见解 Azure Monitor 的功能包括不同网络组件的性能和运行状况的直观表示形式,并提供对网络观察程序一部分的网络监视工具的访问权限。

容器级别

容器级别包括 Kubernetes 对象,例如部署、容器和副本集、群集控制平面组件(包括 API 服务器、云控制器和 kubelet),以及抽象为节点和节点池的虚拟机规模集。 这些层使用以下服务进行监视。

服务 Description
适用于 Prometheus 的 Azure Monitor 托管服务 Prometheus 是来自 Cloud Native Compute Foundation 的云原生指标解决方案,也是用于从 Kubernetes 群集收集和分析指标数据的最常见工具。 适用于 Prometheus 的 Azure Monitor 托管服务是一个完全托管的解决方案,与 Prometheus 查询语言(PromQL)和 Prometheus 警报兼容,并与 Azure Managed Grafana 集成,实现可视化。 此服务支持对开源工具的投资,而无需管理自己的 Prometheus 环境的复杂性。
容器日志收集 适用于 AKS 和已启用 Azure Arc 的 Kubernetes 群集的 Azure 服务,这些群集使用 Azure Monitor 代理 的容器化版本从群集中的每个节点收集 stdout/stderr 日志和 Kubernetes 事件。 在 Azure 门户中分析数据或使用 Log Analytics 对其进行查询。
控制平面日志收集 控制平面日志作为 Azure Monitor 中的 资源日志 实现。 创建 诊断设置 ,以在容器日志所在的 Log Analytics 工作区中收集这些日志。
已启用 Azure Arc 的 Kubernetes 允许将 Azure 作为集中式控制平面附加到在本地或其他云中运行的 Kubernetes 群集。 安装 Arc 代理后,可以使用相同的方法和工具一起监视 AKS 和混合群集,包括收集容器日志 Prometheus 指标。

应用程序级别

使用以下服务监视 Kubernetes 群集上运行的应用程序工作负荷。

服务 Description
Application Insights Azure Monitor 的一项功能是提供应用程序性能监控(APM),以监控从开发、测试到生产环境中 Kubernetes 群集上运行的应用程序。 使用分布式跟踪快速识别和缓解延迟和可靠性问题。 支持 OpenTelemetry 进行供应商独立监测。

分析

Azure Monitor 提供了多个工具来分析其他功能收集的数据。 首先汇总环境中的所有群集,然后向下钻取到单个群集的交互式视图。 还可以利用各种可用的 Grafana 仪表板,这些仪表板结合了不同的 Kubernetes 遥测集。 对于主动通知,请基于 Prometheus 指标启用一组常见警报规则。

服务 Description
统一监视仪表板 Azure 门户中的统一监视仪表板合并了不同服务收集的数据,以便在单个屏幕上进行交互式分析。 获取不同群集的高级状态,然后向下钻取各个群集及其组件的详细信息。
Azure 托管 Grafana Grafana 的完全托管实现,它是一个开源数据可视化平台,通常用于呈现 Prometheus 和其他数据。 可选择多种预定义的 Grafana 仪表板来监视 Kubernetes 并进行全堆栈故障排除。
使用 Grafana 的 Azure Monitor 仪表板(预览版) 在 Azure 门户中演示 Grafana 仪表板,无需配置要求和成本。 如果不需要跨多个数据源的仪表板,请选择使用此功能,而不是 Managed Grafana。

“容器见解”单个和多个群集视图的屏幕截图。

后续步骤