你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Monitor 适用于 Prometheus 的托管服务远程写入

适用于 Prometheus 的 Azure Monitor 托管服务旨在替代自我管理的 Prometheus,使你无需在 Kubernetes 群集中管理 Prometheus 服务器。 你还可以选择使用托管服务来集中处理自我管理 Prometheus 群集中的需要长期保留的数据,以及创建各个群集的集中化视图。 在这种情况下,可以使用 remote_write 将数据从自我管理的 Prometheus 发送到我们的 Azure 托管服务中。

体系结构

Azure Monitor 提供了一个反向代理容器(Azure Monitor 挎斗容器),该容器提供用于引入 Prometheus 远程写入指标的抽象,并帮助对数据包进行身份验证。 Azure Monitor 挎斗容器目前支持使用基于用户分配的标识和 Microsoft Entra ID 的身份验证将 Prometheus 远程写入指标引入 Azure Monitor 工作区。

支持的版本

  • 托管标识身份验证需要高于 v2.45 的 Prometheus 版本。
  • Microsoft Entra ID 应用程序身份验证需要高于 v2.48 的 Prometheus 版本。

配置远程写入

配置远程写入的过程取决于群集配置和使用的身份验证类型。

  • 建议将托管标识用于 Azure Kubernetes 服务 (AKS) 和已启用 Azure Arc 的 Kubernetes 群集。
  • Microsoft Entra ID 可用于 Azure Kubernetes 服务 (AKS) 和已启用 Azure Arc 的 Kubernetes 群集,并且对于在另一个云或本地运行的 Kubernetes 群集是必需的。

有关如何为 Kubernetes 群集配置远程写入的详细信息,请参阅以下文章:

从虚拟机和虚拟机规模集进行远程写入

可以使用远程写入将 Prometheus 数据从虚拟机和虚拟机规模集发送到 Azure Monitor 工作区。 服务器可以是 Azure 托管的,也可以在任何其他环境中。 有关详细信息,请参阅将 Prometheus 指标从虚拟机发送到 Azure Monitor 工作区

验证远程写入是否正常工作

使用以下方法验证 Prometheus 数据是否正在发送到 Azure Monitor 工作区。

Kubectl 命令

使用以下命令查看挎斗容器中的日志。 如果 avgBytesPerRequestavgRequestDuration 输出具有非零值,则表明远程写入数据正在流动。

kubectl logs <Prometheus-Pod-Name> <Azure-Monitor-Side-Car-Container-Name> --namespace <namespace-where-Prometheus-is-running>
# example: kubectl logs prometheus-prometheus-kube-prometheus-prometheus-0 prom-remotewrite --namespace monitoring

此命令的输出具有以下格式:

time="2022-11-02T21:32:59Z" level=info msg="Metric packets published in last 1 minute" avgBytesPerRequest=19713 avgRequestDurationInSec=0.023 failedPublishing=0 successfullyPublished=122

使用 PromQL 的 Azure Monitor 指标资源管理器

若要检查指标是否流向 Azure Monitor 工作区,请在 Azure 门户中的 Azure Monitor 工作区中选择“指标”。 使用指标资源管理器查询你期望从自托管 Prometheus 环境中获得的指标。 有关详细信息,请参阅指标资源管理器

Azure Monitor 工作区中的 Prometheus 资源管理器

Prometheus 资源管理器提供了在 Azure 环境中与 Prometheus 指标交互的便捷方法,使监视和故障排除更高效。 若要使用 Prometheus 资源管理器,请转到 Azure 门户中的 Azure Monitor 工作区,然后选择“Prometheus 资源管理器”以查询你期望从自托管 Prometheus 环境中获得的指标。 有关详细信息,请参阅 Prometheus 资源管理器

Grafana

在 Grafana 中使用 PromQL 查询,并验证结果是否返回预期数据。 有关为 Azure 适用于 Prometheus 的托管服务配置 Grafana 的详细信息,请参阅通过托管系统标识将 Azure Monitor 适用于 Prometheus 的托管服务用作 Grafana 的数据源

远程写入疑难解答

如果远程数据未显示在 Azure Monitor 工作区中,请参阅远程写入故障排除以了解常见问题和解决方案。

后续步骤