监视和记录数据

适用于:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

本文介绍如何监视 Azure Kubernetes 服务 (AKS) 部署,以及如何收集由 Azure Arc 启用的 AKS 中的日志记录数据。了解如何使用 Prometheus 和 设置和访问本地监视,以及如何使用 、 Fluent BitKibana 和 (EFK) 收集和查看日志ElasticsearchGraphana

有两种类型的监视和日志记录解决方案可用,如下表所述:

解决方案 Azure 连接性 支持和服务 成本 部署
Azure Monitor 需要使用 Azure Arc for Kubernetes 将 Kubernetes 群集连接到 Azure。 Microsoft 提供的全面支持和服务。 需要注册 Azure Monitor 服务。 使用 Azure Arc 监视群集
本地监视和日志记录 不需要 Azure 连接。 由 Microsoft (作为开源软件提供支持,没有支持协议或 SLA) 、社区和/或外部供应商。 依赖于供应商。 客户驱动。 请参阅 使用本地监视监视群集

若要将 Azure Monitor 与 Kubernetes 群集配合使用,请参阅 Azure Monitor 概述

使用本地监视

在生产环境中运行应用时,监视群集上控制平面节点和工作负载的运行状况、性能和资源使用情况至关重要。 建议使用的监视解决方案包括以下两个工具:

  • Prometheus 是一个监视和警报工具包,可用于监视容器化工作负载。 Prometheus 适用于各种类型的收集器和代理,用于收集指标并将其存储在你可查询数据和查看报表的数据库中。 使用 AKS Arc 可以轻松部署 Prometheus,本文稍后将对此进行介绍。
  • Grafana 工具用于在 Grafana 仪表板上查看、查询和可视化指标。 你还可将 Grafana 配置为使用 Prometheus 作为数据源。 必须使用 AKS Arc 拥有自己的 Grafana 许可副本。

监视解决方案概述

作为 Arc 启用的 AKS 中的 Prometheus 解决方案的一部分,将部署并自动配置以下组件:

该部署基于公开提供的 Kube-Prometheus-stack Helm 图表,该图表已扩展为支持 Windows 导出程序,并保护 Prometheus 和代理之间的指标抓取。 部署 Prometheus 解决方案后,节点导出程序在每个 Linux 节点上运行,Windows 导出程序在每个 Windows 节点上运行。

注意

由于 Prometheus 运算符、Prometheus 和 Kube 状态指标组件仅在 Linux 上受支持,因此必须在 AKS 群集中至少预配一个 Linux 节点才能部署此解决方案。

Prometheus 解决方案抓取的对象和终结点包括以下项:

  • 用于收集 Kubernetes 提供的各种指标的 Kube 状态指标
  • Kubernetes API 服务器
  • Kubelet
  • 用于收集 Linux 节点指标的 Node 导出程序
  • 用于收集 Windows 节点指标的 Windows 导出程序

若要查看 AKS Arc 中提供的 Grafana 仪表板,请参阅 AKS Arc 中提供的 Grafana 仪表板

使用 PowerShell 部署监视解决方案

本部分介绍可用于在工作负载群集上部署监视的两个选项。

选项 1:在创建工作负载群集时部署监视解决方案

若要启用监视,请在使用 New-AksHciCluster 创建工作负荷群集时提供 -enableMonitoring 参数,如以下示例所示:

New-AksHciCluster -name mynewcluster -enableMonitoring

使用以下配置安装监视:

  • 预配用来存储指标 (storageSizeGB) 的永久性卷的大小为 100 GB.
  • 收集的指标 (retentionTimeHours) 的保留时间为 240 小时(或 10 天)。

选项 2:在现有工作负载群集上部署监视解决方案

运行 Install-AksHciMonitoring 命令,在现有工作负载群集上部署监视解决方案,如下所示:

Install-AksHciMonitoring -Name mycluster -storageSizeGB 100 -retentionTimeHours 240

参数 -storageSizeGB 设置预配为存储指标的永久性卷的大小,参数 -retentionTimeHours 设置所收集指标的保留时间。

监视解决方案安装在名为 的 monitoring 单独命名空间中,并使用名为 的 monitoring-scStorageClass。 Prometheus 在内部终结点上公开,该终结点只能在 http://akshci-monitoring-prometheus-svc.monitoring:9090 上的群集中访问。

使用 PowerShell 卸载监视解决方案

运行 Uninstall-AksHciMonitoring PowerShell 命令以卸载 AKS Arc 监视解决方案,如下所示:

Uninstall-AksHciMonitoring -Name <target cluster name>

卸载过程会删除所有内容,包括命名空间、StorageClass 以及永久性卷的实际数据和指标。

部署 Grafana 并将其配置为使用 Prometheus

可以按照任何指南部署公开提供的 Grafana。 还可以查看 Microsoft 的部署指南以 使用 Grafana,其中详细介绍了如何部署和配置 Grafana 以将其连接到 AKS Prometheus 实例。 此 GitHub 页面还介绍了如何添加 Microsoft 为 Arc 启用的 AKS 提供的 Grafana 仪表板。

本地日志记录

日志记录对于故障排除和诊断至关重要。 AKS Arc 中的日志记录解决方案基于 Elasticsearch、Fluent Bit 和 Kibana (EFK) 。 这些组件都部署为容器:

  • Fluent Bit 是日志处理器和转发器,用于从不同源收集数据和日志。 然后,它会将它们格式化、统一并存储在 Elasticsearch 中。
  • Elasticsearch 是一个分布式搜索和分析引擎,可以集中存储日志以实现快速搜索和数据分析。 
  • Kibana 在 Web 仪表板上提供交互式可视化效果。 利用此工具,你可以查看和查询存储在 Elasticsearch 中的日志,然后通过图形和仪表板将其可视化。

若要设置本地日志记录解决方案,请参阅设置日志记录以访问 Kibana 所需的步骤。 本文包括了在整个群集中收集、聚合和查询容器日志所需的所有组件。

有关高级配置步骤,请参阅 Windows 日志记录

后续步骤