使用Remote Read地址以实现自建Prometheus访问云上Prometheus数据

可观测监控 Prometheus 版提供了Remote Read的标准接口,您可以通过这个接口远程访问云上Prometheus的监控数据。本文以开源Prometheus访问阿里云可观测监控 Prometheus 版监控数据为例介绍如何使用Remote Read地址。

使用限制

Remote Read接口暂不支持HTTP/2。

前提条件

已创建可观测监控 Prometheus 版实例。详细步骤,请参见创建实例

(可选)步骤一:为RAM用户授予ARMS读写权限

如果您的阿里云Prometheus实例是由阿里云主账号创建,且您需要使用RAM用户的AccessKey ID和AccessKey Secret进行远程读写,则需要先为RAM用户授予ARMS的读写权限。

  1. 使用阿里云主账号或RAM管理员登录RAM控制台

  2. 在左侧导航栏选择权限管理 > 授权

  3. 授权页面,单击新增授权

  4. 新增授权页面,设置授权主体为需要被授权的RAM用户。

  5. 选择权限区域通过搜索查找ARMS的权限策略,单击权限策略名称将权限策略添加至右侧已选择区域,然后单击确定新增授权

    应用实时监控服务 ARMS(Application Real-Time Monitoring Service)提供的系统权限策略包括完整权限和只读权限,您可以根据需求选择为RAM用户添加以下的权限:

    • AliyunARMSFullAccessARMS的完整权限,添加该权限后,RAM用户拥有对各子产品实例的查看、编辑、删除等所有操作权限。

    • AliyunARMSReadOnlyAccessARMS的只读权限,添加该权限后,RAM用户只支持查看各子产品的实例信息,不支持修改、删除等操作。

步骤二:获取Remote Read地址

  1. 登录Prometheus控制台

  2. 在左侧导航栏单击实例列表,进入可观测监控 Prometheus 版的实例列表页面。

  3. 在页面顶部菜单栏选择实例所在的地域,并在目标集群右侧的操作列单击设置

  4. 设置页签上,根据需求复制公网或内网的Remote Read地址。

    image

步骤三:配置开源版Prometheus

  1. 安装Prometheus,安装方法请参见开源版Prometheus下载地址

  2. 编辑Prometheus.yml配置文件,并在文件末尾增加以下内容,将remote_read链接替换为上文步骤二中获取的地址,然后保存文件。

    global:
      scrape_interval: 15s
      evaluation_interval: 15s
    scrape_configs:
      - job_name: 'prometheus'
        static_configs:
        - targets: ['localhost:9090']
    remote_read:
      # 替换为您的Remote Read地址。
      - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_read"
        read_recent: true
  3. 重启开源版Prometheus服务。

步骤四:在自建Prometheus上查看阿里云Prometheus数据

  1. 在浏览器登录自建Prometheus。

    http://localhost:9090
  2. Prometheus页面,单击页面顶部菜单栏的Graph

  3. Graph页签的搜索框中输入要查询的SQL语句,然后单击搜索框右侧的Execute

    例如查询指定IP的CPU使用率。

    100 - (avg by (instance) (rate(node_cpu_seconds_total{instance="指定IP:9100", mode="idle"}[5m])) * 100)

    image