配置并使用Prometheus V2实例的免密访问功能

默认情况下,访问Prometheus V2实例需要用户提供AccessKeySecretyKey进行鉴权。但在某些场景下,用户可能需要直接访问某些Prometheus实例数据,本文介绍如何配置并使用Prometheus实例的免密访问功能。

前提条件

  • 本功能仅适用于Prometheus V2实例。

  • 已创建Prometheus V2实例。

  • 目前仅支持免密访问Prometheus客户端的IP地址或IP地址段。

配置免密访问

  1. 登录云监控控制台

  2. 在左侧导航栏,选择Prometheus监控 > 实例列表,然后单击目标实例名称。

  3. 设置页面单击免密访问配置

  4. 根据需求开启或关闭读取免密写入免密功能。

    功能开启后还需配置免密读写的客户端IP地址或IP地址段:

    • 0.0.0.0/0表示对所有客户端地址开启免密。

    • 多外IP地址或IP地址段以换行分隔。

    image

  5. 单击确定

获取客户端IP地址

Prometheus V2实例使用SLS MetricStore作为存储引擎,服务端获取到的客户端IP地址可能不是您客户端所在VPC内的IP地址,受请求链路多个环节影响,想要确切获取您当前场景下Prometheus服务获取到的客户端IP地址,可通过服务日志自助查询访问Prometheus V2实例的客户端IP地址。

获取Prometheus V2实例对应的SLS MetricStore

Prometheus V2实例详情的设置界面可获取实例对应的SLS ProjectMetricStore。

  • SLS Project:HTTP API地址域名中的一段。

  • SLS MetricStore:命名规则为aliyun-prom-{prometheus实例id},在基础信息区域可以获取实例ID

2025-08-27_17-41-07

查看Prometheus V2服务端获取到的请求客户端IP地址

开启SLS Project服务日志后,在服务日志的Project下,进入名称为internal-operation_logLogstore中,输入过滤条件* and Status: 401 and LogStore: aliyun-prom-{Prometheus实例ID}可查询鉴权失败日志,其中ClientIP即为服务端获取到的您当前场景下的客户端IP。

image

客户端免密读写

获取读写地址

Prometheus实例设置页面的访问地址区域,可查看HTTP API、Remote Write、Remote Read等地址。

发起免密读写请求

客户端直接发起读写,HTTP头中不要携带AccessKey、SecretKey信息。以下是HTTP API免密读请求示例:

GET {HTTP API}/api/v1/query

Accept: application/json
Content-Type: application/json

{
  "query":"arms_prometheus_target_interval_length_seconds_sum",
  "time":"1635302655",
  "timeout":"1000"
}
重要

开启免密访问后,发起访问请求时请勿带携带AccessKey、SecretKey头,否则Promethues服务端仍按AccessKey身份进行RAM权限认证与鉴权,可能导致访问被拒绝。