适用于 Prometheus 的 Azure Monitor 托管服务旨在替代自我管理的 Prometheus,使你无需在 Kubernetes 群集中管理 Prometheus 服务器。 你还可以选择使用托管服务来集中来自用户管理的 Prometheus 群集中的数据,以实现长期数据存储并创建所有群集的集中视图。 在这种情况下,可以使用 remote_write 将数据从自我管理的 Prometheus 发送到我们的 Azure 托管服务中。
可以将 Kubernetes 群集上运行的 Prometheus 配置为远程写入 Azure Monitor 工作区。 在使用 Prometheus 远程写入配置将指标引入 Azure Monitor 工作区时,目前支持以下身份验证类型:用户分配的托管标识或 Microsoft Entra ID 应用程序。
Azure Monitor 还提供了一个反向代理容器(Azure Monitor 挎斗容器),它为引入 Prometheus 远程写入指标提供了抽象,并有助于对数据包进行身份验证。
我们建议在环境中运行的自托管 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 群集是必需的。
若要详细了解如何为用户分配的托管标识和 Microsoft Entra ID 应用程序配置远程写入,请参阅在 Kubernetes 上为 Prometheus Operator 配置远程写入。 此选项可用于在任何环境中运行的自托管 Prometheus。
还可以使用挎斗容器配置 Kubernetes 群集上的 Prometheus 的远程写入。 有关通过使用 sidecar 容器为 Kubernetes 集群配置远程写入的更多信息,请参阅以下文章。
- 使用具有托管标识身份验证的挎斗容器将 Prometheus 数据从 AKS 发送到 Azure Monitor
- 使用具有 Microsoft Entra ID 身份验证的挎斗容器将 Prometheus 数据从 AKS 发送到 Azure Monitor
- 使用具有 Microsoft Entra ID 工作负荷 ID 身份验证的挎斗容器将 Prometheus 数据发送到 Azure Monitor
可以使用远程写入将 Prometheus 数据从虚拟机和虚拟机规模集发送到 Azure Monitor 工作区。 服务器可以是 Azure 托管的,也可以在任何其他环境中。 有关详细信息,请参阅将 Prometheus 指标从虚拟机发送到 Azure Monitor 工作区。
使用以下方法验证 Prometheus 数据是否正在发送到 Azure Monitor 工作区。
使用以下命令查看挎斗容器中的日志。 如果 avgBytesPerRequest
和 avgRequestDuration
的输出具有非零值,则表明远程写入数据正在流动。
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
若要检查指标是否流向 Azure Monitor 工作区,请在 Azure 门户中的 Azure Monitor 工作区中选择“指标”。 使用指标资源管理器来查询期望从自托管 Prometheus 环境中获得的指标。 有关详细信息,请参阅指标资源管理器。
Prometheus 资源管理器提供了在 Azure 环境中与 Prometheus 指标交互的便捷方法,使监视和故障排除更高效。 若要使用 Prometheus 资源管理器,请转到 Azure 门户中的 Azure Monitor 工作区,然后选择“Prometheus 资源管理器”以查询你期望从自托管 Prometheus 环境中获得的指标。 有关详细信息,请参阅 Prometheus 浏览器。
在 Grafana 中使用 PromQL 查询,并验证结果是否返回预期数据。 若要详细了解如何配置适用于 Prometheus 的 Azure 托管服务的 Grafana,请参阅使用托管系统标识将适用于 Prometheus 的 Azure Monitor 托管服务用作 Grafana 的数据源
如果远程数据未显示在 Azure Monitor 工作区中,请参阅远程写入故障排除以了解常见问题和解决方案。
有关远程写入挎斗映像的详细发行说明,请参阅远程写入发行说明。