监视和记录数据
适用于:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS
本文介绍如何监视 Azure Kubernetes 服务 (AKS) 部署,以及如何收集由 Azure Arc 启用的 AKS 中的日志记录数据。了解如何使用 Prometheus
和 设置和访问本地监视,以及如何使用 、 Fluent Bit
Kibana
和 (EFK) 收集和查看日志Elasticsearch
。Graphana
有两种类型的监视和日志记录解决方案可用,如下表所述:
解决方案 | 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-sc
StorageClass。 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 日志记录。