你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure提供基于
你可能对 Cloud Native Computing Foundation 认可的云原生技术进行现有投资,或者你的组织可能使用替代工具来收集和分析 Kubernetes 日志,例如 Splunk 或 Datadog。 选择要部署哪些Azure工具及其配置取决于特定环境的要求。 可以选择将现有监视解决方案迁移到Azure Monitor或将Azure服务集成到现有环境中。 例如,可以在其他云中将 Azure 中的托管产品/服务用于 Prometheus 和 Grafana,或者可以选择在 Azure 中的 Kubernetes 群集中使用这些工具的现有安装。
小窍门
本文介绍 Azure Monitor 的功能,用于监视 Kubernetes 群集以及在其上运行的工作负荷的健康状况和性能。 请参阅 使用 Azure Monitor 和云原生工具监视 Kubernetes 群集,以了解有关如何配置这些服务的最佳实践,从而基于典型的管理角色监控 Kubernetes 环境的不同层。
Kubernetes 层
下面是从基础结构层到应用程序的典型 Kubernetes 环境的插图。 每个层都有不同的监视要求,这些要求由下面所述的不同Azure服务解决。
网络级别
支持传入和传出 Kubernetes 群集流量的虚拟网络组件使用以下服务进行监视。
| 服务 | Description |
|---|---|
| Network Watcher | Azure中的工具套件,用于监视 Kubernetes 群集使用的虚拟网络并诊断检测到的问题。 |
| 流量分析 | 网络观察程序的功能,用于分析流日志以提供对流量流的见解。 |
| 网络见解 | Azure Monitor功能,包括不同网络组件的性能和运行状况的直观表示形式,并提供对属于Network Watcher的网络监视工具的访问权限。 |
容器级别
容器级别包括 Kubernetes 对象,例如部署、容器和副本集、群集控制平面组件(包括 API 服务器、云控制器和 kubelet),以及抽象为节点和节点池的虚拟机规模集。 这些层使用以下服务进行监视。
| 服务 | Description |
|---|---|
| Prometheus 的 Azure Monitor 托管服务 | Prometheus 是来自 Cloud Native Compute Foundation 的云原生指标解决方案,也是用于从 Kubernetes 群集收集和分析指标数据的最常见工具。 Azure Monitor 托管的 Prometheus 服务是一个完全托管的解决方案,该解决方案兼容 Prometheus 查询语言(PromQL)和 Prometheus 警报,并且可以与 Azure Managed Grafana 集成用于可视化。 此服务支持对 open source 工具的投资,而无需管理自己的 Prometheus 环境的复杂性。 |
| 容器日志收集 | 适用于 AKS 和已启用 Azure Arc 的 Kubernetes 群集的 Azure 服务,该服务使用 Azure Monitor 智能体的容器化版本从群集中的每个节点收集标准输出/标准错误日志和 Kubernetes 事件。 在Azure门户中分析数据,或使用 Log Analytics对其进行查询。 |
| 控制平面日志收集 | 控制平面日志在 Azure Monitor 中作为 资源日志实现。 创建诊断设置以在容器日志所在的同一Log Analytics工作区中收集这些日志。 |
| 已启用 Azure Arc 的 Kubernetes | 允许您使用 Azure 作为集中控制平面,连接在本地或其他云中运行的 Kubernetes 群集。 安装 Arc 代理后,可以使用相同的方法和工具一起监视 AKS 和混合群集,包括收集容器日志 Prometheus 指标。 |
应用程序级别
使用以下服务监视 Kubernetes 群集上运行的应用程序工作负荷。
| 服务 | Description |
|---|---|
| Application Insights | 提供应用程序性能监视(APM)的Azure Monitor功能,用于监视 Kubernetes 群集上运行的应用程序,从开发、测试到生产环境。 使用分布式跟踪快速识别和缓解延迟和可靠性问题。 支持 OpenTelemetry 进行与供应商无关的检测。 |
分析
Azure Monitor提供了多个工具来分析其他功能收集的数据。 首先汇总环境中的所有群集,然后向下钻取到单个群集的交互式视图。 还可以利用各种可用的 Grafana 仪表板,这些仪表板结合了不同的 Kubernetes 遥测集。 对于主动通知,请基于 Prometheus 指标启用一组常见警报规则。
| 服务 | Description |
|---|---|
| 统一监视仪表板 | Azure门户中的统一监视仪表板合并了不同服务收集的数据,以便在单个屏幕上进行交互式分析。 获取不同群集的高级状态,然后向下钻取各个群集及其组件的详细信息。 |
| Azure Managed Grafana | Grafana 的完全托管实现,它是一个开源数据可视化平台,通常用于呈现 Prometheus 和其他数据。 可选择多种预定义的 Grafana 仪表板来监视 Kubernetes 并进行全堆栈故障排除。 |
| 使用 Grafana 的 Azure Monitor 仪表板 | 在 Azure 门户中演示 Grafana 仪表板,无需配置要求和成本。 如果不需要跨多个数据源的仪表板,请选择使用此功能,而不是托管 Grafana。 |
后续步骤
- 有关使用 Azure Monitor 和云原生工具监控您的 Kubernetes 环境的最佳实践和建议,请参阅 使用 Azure Monitor 和云原生工具监控 Kubernetes 群集。
- 请参阅 “启用对 Kubernetes 群集的监视 ”,以便在群集上启用托管 Prometheus 和日志收集。