你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Prometheus 的 Azure Monitor 托管服务
适用于 Prometheus 的 Azure Monitor 托管服务是 Azure Monitor 指标的一个组件,在可使用 Azure Monitor 收集和分析的指标数据类型方面提供额外的灵活性。 Prometheus 指标受分析工具(例如,使用 PromQL 的 Azure Monitor 指标资源管理器)和开源工具(例如,PromQL和Grafana)支持。
借助适用于 Prometheus 的 Azure Monitor 托管服务,可根据云原生计算基金会中的 Prometheus 项目,使用与 Prometheus 兼容的监视解决方案大规模收集和分析指标。 通过这项完全托管服务,可使用 Prometheus 查询语言 (PromQL) 来分析受监视的基础结构和工作负载的性能并提供相关警报,而无需操作底层基础结构。
重要
适用于 Prometheus 的 Azure Monitor 托管服务用于存储有关客户计算机和应用程序服务运行状况的信息。 它不用于存储任何分类为个人身份信息 (PII) 或最终用户身份信息 (EUII) 的数据。 强烈建议不要将任何敏感信息(用户名、信用卡号等)发送到适用于 Prometheus 的 Azure Monitor 托管服务字段(例如指标名称、标签名称或标签值)。
数据源
Azure Monitor 适用于 Prometheus 的托管服务当前可从以下任何数据源收集数据:
- Azure Kubernetes 服务 (AKS)
- 已启用 Azure Arc 的 Kubernetes
启用
只需要创建 Azure Monitor 工作区(即 Prometheus 指标的存储位置),就能启用适用于 Prometheus 的 Azure Monitor 托管服务。 创建此工作区后,可以加入收集 Prometheus 指标的服务。
- 若要从 Kubernetes 群集收集 Prometheus 指标,请参阅启用对 Kubernetes 群集的监视。
- 若要配置远程写入以从自托管 Prometheus 服务器收集数据,请参阅适用于 Prometheus 远程写入的 Azure Monitor 托管服务。
远程写入
除了适用于 Prometheus 的托管服务外,还可以使用自管理 Prometheus 和远程写入来收集指标并将其存储在 Azure Monitor 工作区中。
Kubernetes 服务
从 Kubernetes 群集上的自管理 Prometheus 发送指标。 若要详细了解对 Kubernetes 服务的 Azure Monitor 工作区进行的远程写入,请参阅以下文章:
- 使用托管标识身份验证将 Prometheus 数据从 AKS 发送到 Azure Monitor
- 使用 Microsoft Entra ID 身份验证将 Prometheus 数据从 AKS 发送到 Azure Monitor
- 使用 Microsoft Entra ID Pod 托管标识(预览版)身份验证将 Prometheus 数据发送到 Azure Monitor
- 使用 Microsoft Entra ID 工作负载 ID(预览版)身份验证将 Prometheus 数据发送到 Azure Monitor
虚拟机和虚拟机规模集
从虚拟机和虚拟机规模集上的自管理 Prometheus 发送数据。 服务器可以位于 Azure 托管的环境中,也可位于本地。 有关详细信息,请参阅将 Prometheus 指标从虚拟机发送到 Azure Monitor 工作区。
使用 PromQL 的 Azure Monitor 指标资源管理器
使用 PromQL 的指标资源管理器允许分析和可视化平台指标,并使用 Prometheus 查询语言(PromQL) 查询存储在 Azure Monitor 工作区中的 Prometheus 和其他指标。 使用 PromQL 的指标资源管理器可从 Azure 门户的任何 Azure Monitor 工作区的指标菜单项中获取。 有关详细信息,请参阅使用 PromQL 的指标资源管理器。
Grafana 集成
用于可视化 Prometheus 指标的主要方法是 Azure 托管 Grafana。 将 Azure Monitor 工作区连接到 Grafana 工作区,使其可用作 Grafana 仪表板中的数据源。 然后,可访问使用 Prometheus 指标的多个预生成的仪表板,并且能够创建任意数量的自定义仪表板。
规则和警报
适用于 Prometheus 的 Azure Monitor 托管服务支持使用 PromQL 查询记录规则和警报规则。 记录规则记录的指标存储在 Azure Monitor 工作区中,可以通过仪表板或其他规则进行查询。 可以使用 Azure 托管 Prometheus 规则组创建和管理警报规则和记录规则。 对于 AKS 群集,提供了一组预定义的 Prometheus 警报规则和记录规则,以便轻松快速地入门。
警报规则触发的警报可以触发操作或通知,如为警报规则配置的操作组中所定义。 还可在 Azure 门户中查看已触发和已解决的 Prometheus 警报以及其他警报类型。
服务限制和配额
适用于 Prometheus 的 Azure Monitor 托管服务具有用于引入的默认限制和配额。 达到引入限制时,可能会发生限制。 可以请求增加这些限制。 有关限制和请求提高限制的详细信息,请参阅监视指标限制。 有关 Prometheus 指标限制的信息,请参阅Azure Monitor 服务限制。
限制/已知问题 - Azure Monitor 适用于 Prometheus 的托管服务
- 不支持以小于 1 秒的频率抓取和存储指标。
- 适用于 Prometheus 的 Azure Monitor 托管服务不支持由世纪互联运营的 Microsoft Azure 云和气隙云。
- 若要监视群集中的 Windows 节点和 Pod,请参阅为 Azure Kubernetes 服务 (AKS) 群集启用监视。
- Azure 托管 Grafana 目前在 Azure 美国政府云中不可用。
- 使用指标(Azure Monitor 工作区
Metrics
菜单下的指标)- 任何 Azure Monitor 工作区的引入配额限制和当前用量尚未在美国政府云中可用。 - 在节点更新期间,在群集级别收集器的某些指标集合中,可能会遇到持续 1 到 2 分钟的间隙。 此间隙是由于 Azure Kubernetes 服务更新群集中的节点的定期操作。 此行为是预期行为,它的发生是由于它基于的节点正在更新。 我们推荐的警报规则均不受此行为的影响。
事例敏感性
Azure 托管的 Prometheus 是一个不区分大小写的系统。 如果字符串(例如指标名称、标签名称或标签值)与另一个时序的区别仅在于字符串的大小写,则它会将这些字符串视为相同的时序。
注意
此行为不同于本机开放源代码 Prometheus,因为后者是区分大小写的系统。
在 Azure 托管的 Prometheus 中,以下时序被视为相同:
diskSize(cluster="eastus", node="node1", filesystem="usr_mnt")
diskSize(cluster="eastus", node="node1", filesystem="usr_MNT")
上述示例是时序数据库中的单个时序。
- 针对它们引入的任何样本都会像针对单个时序抓取/引入它们一样存储。
- 如果前述示例采用相同的时间戳引入,则会随机删除其中一个示例。
- 存储在时序数据库中并通过查询返回的大小写是不可预测的。 对于同一个时序,可能在不同的时间会返回不同的大小写。
- 通过进行不区分大小写的比较,可从时序数据库中检索查询中存在的任何指标名称或标签名称/值匹配器。 如果查询中存在区分大小写的匹配器,则进行字符串比较时,会将其视为不区分大小写的匹配器。
最佳做法是确保使用单个一致事例生成或抓取时序。
在开放源代码 Prometheus 中,上述时序被视为两个不同的时序。 针对它们抓取/引入的任何样本将单独存储。
Prometheus 参考
以下是 Prometheus 文档的链接。
常见问题
本部分提供常见问题的解答。
如何检索 Prometheus 指标?
使用以 Prometheus 查询语言 (PromQL) 编写的查询从 Azure Monitor 工作区检索所有数据。 你可以编写自己的查询,使用来自开源社区的查询,使用包含 PromQL 查询的 Grafana 仪表板。 请参阅 Prometheus 项目。
是否可以在 Azure Monitor 指标资源管理器中查看 Prometheus 指标?
使用 PromQL 的指标资源管理器支持使用 PromQL 可视化 Prometheus 指标数据。 要使用使用 PromQL 的指标资源管理器支持,请从 Azure 门户的任何 Azure Monitor 工作区中选择“指标”菜单项。 有关详细信息,请参阅使用 PromQL 的指标资源管理器(预览版)。
使用适用于 Prometheus 的托管服务时,是否可以在一个 Azure Monitor 工作区中存储多个群集的数据?
是的。 适用于 Prometheus 的托管服务支持将多个 Azure Kubernetes 服务群集的数据存储在单个 Azure Monitor 工作区中的方案。 请参阅 Azure Monitor 工作区概述。
哪些类型的资源可以将 Prometheus 指标发送到适用于 Prometheus 的托管服务?
我们的代理可在 Azure Kubernetes 服务群集和已启用 Azure Arc 的 Kubernetes 群集上使用。 它作为 AKS 群集的托管加载项以及已启用 Azure Arc 的 Kubernetes 群集的扩展安装,你可以将其配置为收集所需数据。 还可以按照有关启用远程写入的说明,在 Azure、另一个云中或本地运行的 Kubernetes 群集上配置远程写入。
如果你使用 Azure 门户来启用 Prometheus 指标收集,并从群集的“见解”页安装 AKS 加载项或已启用 Azure Arc 的 Kubernetes 扩展,则会在日志分析中启用日志收集,在适用于 Prometheus 的托管服务中启用 Prometheus 指标收集。 有关详细信息,请参阅数据源。
如何监视服务限制和配额?
适用于 Prometheus 的 Azure Monitor 托管服务具有用于引入的默认限制和配额。 有关 Prometheus 指标限制的信息,请参阅Azure Monitor 服务限制。 达到引入限制时,可能会发生限制。 为了避免受到限制,可以监视 Azure Monitor 工作区引入限制并针对其设置警报。
- 在 Azure 门户中,导航到你的 Azure Monitor 工作区,在“监视”部分下单击“指标”。
- 选择“Azure Monitor 工作区”作为范围,然后在“指标”下拉菜单中选择“使用生成器查看标准指标”。
- 在“指标”下拉菜单中,选择“活动时序利用率百分比”和“每分钟引入的事件利用率百分比”,并验证这些利用率是否低于 100%。
- 可以设置 Azure 警报来监视利用率,并在利用率大于特定阈值(例如限制值的 80%)时发出警报。 单击“新建警报规则”以针对限制创建 Azure 警报。
如果触发了警报(例如引入利用率超过阈值),你可以通过创建支持工单来请求提高这些限制。
- 在 Azure 门户中,导航到你的 Azure Monitor 工作区,单击“支持 + 故障排除”。
- 键入问题,例如 “服务和订阅限制(配额)”,然后选择“服务和订阅限制(配额)”并单击“下一步”。
- 在下一屏幕中选择你的订阅,然后选择“托管 Prometheus”作为“配额类型”。
- 提供更多详细信息以创建支持工单。